响应式UI提示

Wil*_*lem 8 .net c# wpf

当我想创建一个响应式用户界面时,我想要一些提示.

我知道如何使用:

Dispatcher
Task
BackgroundWorker
Threads
Run Code Online (Sandbox Code Playgroud)

我正在寻找更多高级技巧,比如绑定提示...当我的UI上有50多个控件需要更新时.

PriorityBinding
Populating ComboBoxes
Populating ListBoxes, ListViews
Run Code Online (Sandbox Code Playgroud)

在后台处理数据时...最佳实践可能涉及长时间运行的过程.

我还能做些什么来使我的UI 100%响应.

WPF*_*-it 16

  1. FastObservableCollection

  2. 操纵PresentationSource

  3. 通过使用AsQueryable()来动态过滤数据源而不是单线程和线程无关,在多个线程上使用PLinq或Linq .CollectionView

  4. 现成的GIF动画

  5. 像帆布这样的非虚拟化面板的虚拟化

  6. 延迟滚动

  7. Trigger.Exnter \退出动画的动作.

  8. BeginStoryboard.HandoffBehavior = "撰写"

  9. 使用硬件超过软件加速.

  10. 避免WindowStyle=None,AllowTransparency=true,Background=Transparent,TileMode

  11. 配置RenderOptions.BitmpaScalingMode为LowQuality并启用缓存.启用PresentationFontCacheWindows服务.

  12. 使用Staticresources结束Dynamicresources

  13. 避免可继承的依赖属性.同时避免在属性更改回调中的繁重操作.

  14. 使用Freezable画笔.避免x:Name/ Namescoping/ Binding他们的Color属性他们一直是freezable.

  15. 设置边框的背景,如果它封装视觉而不是设置视觉背景.类似的是,如果你设置了Brush一个视觉的背景然后指定Brush.OpacityVisual.Opacity.

  16. 值转换器必须具有最小化代码.使用Binding.IsAsyncPriorityBinding适用的地方.

  17. 使用ExpandersIsExpanded=False默认.

  18. CompositionTarget.Rendering在每个渲染周期触发,因此只应在需要时使用.任何机会都要抓住它.

  19. WPF DataGrid应该避免大量使用组合框列和可编辑的模板列,因为当使用高度可观察的集合时,combobx模板尝试加载选定的值并使用显示成员路径,通过从每个组合框的项目源实际搜索它和模板列泄漏.

  20. 使用WPF Extedned Tooklit基于Shader效果和New Pixel Shader API,如Blur,Shadow.

还有很多...