2008-11-27 26 views
10

此问题旨在提供开发WPF应用程序时常见陷阱,“疑难问题”或设计问题的解决方案列表。只要有解释为什么它最好,这也可以包含适当的设计模式。应根据问题类型的普遍程度对答复进行投票。这里是规则:WPF开发中最常犯的错误是什么?

  • 每个帖子一个响应。这显然会给最常见的问题排名最高。
  • 最好提供已经居住在SO土地某处的相关帖子或解决方案的链接。
+0

随着越来越多的商店开始关注WPF,这对许多开发人员来说都是非常宝贵的资源。 – 2008-11-27 04:03:08

回答

14

问题:到目前为止,我所看到的主要问题是,人们开始在WPF在头脑里的WinForm的UI模型编码。

解决方案WPF是不是的WinForms/MFC/Win32的所以忘了所有的UI端假设和规范你已经使用和教训,同时开发Windows,去年20岁以上基于UI。

理解此平台背后的核心思想非常重要,本链接-Major UI Development Breakthroughs in the new WPF platform将深入介绍WPF。其中列出了以下几点。突出显示的是我最喜欢的这个平台的功能。

  • 高级图形
  • 绘图对象模型
  • 丰富的应用文本
  • 适应UI布局
  • 弹性内容模型
  • 无外观控制
  • 数据驱动UI
  • 一致样式
  • 触发器
  • 声明式编程
  • +0

    你应该更具体。我一直投票,直到你提供更详细的解释你的意思。你应该提供一些M-V-VM的参考资料。 – Micah 2008-11-27 00:30:51

    +0

    他是绝对正确的,这是你必须了解的一件事,了解WPF – 2008-11-27 00:40:02

    +0

    借调弥迦,我应该放弃哪些假设? – Jimmy 2008-11-27 00:45:33

    1

    获取数据结合于元件ContentControls(视窗,用户控件等。)定义的属性和属性之间正常工作构成控件内容。例如。比方说,我有一个窗口,看起来像这样:

    <Window x:Name="MyWindow"....> 
        <TextBlock Text="{Binding Path=PropertyDefinedInMyWindow}" /> 
    </Window> 
    

    问题:不管你如何经常更新“PropertyDefinedInMyWindow”它永远不会体现在TextBlock中。 SO Question

    解决方案:您需要设置窗口的DataContext或告知财产住在哪个元素的结合。SO Solution

    2

    问题/疑问:SO Question

    怎样在我的用户 控制用户暴露的组件的一个DependencyProperty ?有很多 的例子如何通过创建一个新的依赖关系 属性和绑定,但如何 暴露如 FrameworkElement.ActualWidthProperty的只读属性如何公开正常 属性的示例。

    解决方案:你需要暴露一个新的只读的DependencyProperty在用户控件,并更新它,每当你载“组件”的ActualWidthProperty得到更新。这需要使用DependecyPropertyDescriptor来获知发生的变化。 SO Solution

    3

    问题:使用M-V-VM设计模式,我在哪里实例化视图?这是否发生在ViewModel? SO Question 1SO Question 2

    解决方案:使用M-V-VM图案时,而不是其他常见的模式如M-V-C WPF发展是最有效的。趋势是将ViewModel与处理打开和创建视图以及模型的控制器相同。在M-V-VM中情况并非如此。意见是唯一应该创建意见的地方。 ViewModels应该对视图一无所知。 SO Answer 1,SO Answer 2

    3

    没有意识到字体渲染有多坏在项目的开始和他们受不了看它的客户被告知因为一切看起来都很模糊。

    0

    在视图中使用代码 - 使婴儿FSM哭泣。

    相关问题