WPF 基础入门(开发注意事项)

在WPF开发过程中应该注意的事项有:

    1.当增加一个无元素的控件时,最好使用自闭合标签“/>”关闭,不要使用硬关闭标签“>”,这样的XAML代码看起来会更清爽。

    2.如果资源没有被利用,最好移除这些不必要的资源,因为他们会消耗更多内存;

    3.如果你需要使用其它面板,首先尝试Grid,Grid拥有灵活的UI布局,对调整应用程序的大小很有作用。

    4.使用控件的Visibility属性代替Opacity属性隐藏内容, Opacity属性值设置为0虽然可以起到隐藏作用,但内存占用和UI空间占用是不会减少的,相反,Visibility属性会释放内存和UI空间,因此可以将有限的空间放置其它控件。

    5.使用StaticResource代替DynamicResource,首先它会提升性能,其次在开发时,可以跑出异常信息,便于调试。

    6.移除不需要的样式。

    7.如果你想跨应用程序共享你的样式,最好在单独的文件中添加你的样式,如果你只针对某个特殊页面,最好在页面资源文件中添加它们。

    8.尽量使用Canvas等简单的布局元素,少使用Grid和StackPanel等复杂的,越复杂性能开销越大。

    9.建立逻辑树或者视觉树的时候,要遵循Top-Down的原则。

    10.自定义控件,尽量不要在控件ResourceDictionary定义资源,而应该放在Window或者Application级。因为放在控件中会使每一个实例都保留一份资源的拷贝。

    11.当我们在列表(比如ListBox)显示了一个CLR对象列表(比如List)时,如果想要在修改List对象后,ListBox也动态的反映这种变化。此时,我们应该使用动态的ObservableCollection对象绑定,而不是直接更新ItemSource。两者的区别在于直接更新ItemSource会使WPF抛弃ListBox已有的所有数据,然后全部从List中加载;而ObservableCollection可以避免这种先删除后加载的过程,效率更高。

    12.把Label(标签)元素的ContentProperty和一个字符串绑定的效率要比把字符串和TextBlock的Text属性绑定的效率低。因为Label在更新字符串是会丢弃原来的字符串,全部重新显示内容。

    13.动画间隔时间越小,耗费的资源越高。

    14.耗时操作放在非UI线程上处理,保持UI顺畅,处理完成后,如果需要在UI上显示,使用Dispatcher.BeginInoke()方法。

    15.关于数据绑定,根据实际情况对Binding指定不同的Mode,性能OneWay优于TwoWay。

**************************************************************************************************************

你可能感兴趣的:(#,WPF,基础学习,wpf,WPF,开发注意事项)