当我想创建响应式用户界面时,我只想要一些提示。
我知道如何使用:
Dispatcher
Task
BackgroundWorker
Threads
我正在寻找更多高级提示,例如绑定提示...当我的 UI 上有 50 多个控件需要更新时。
PriorityBinding
Populating ComboBoxes
Populating ListBoxes, ListViews
在后台处理数据时...
最佳实践可能是在长时间运行的过程中。
我还能做什么来让我的 UI 100% 响应。
快速可观察集合
操纵演示源
Using PLinq或在多线程上使用 Linq可查询() 用于动态过滤数据源而不是单线程和线程无关CollectionView
.
现成Gifs过度动画
画布等非虚拟化面板的虚拟化
延迟滚动
Trigger.Exnter \ 动画的退出动作。
BeginStoryboard.HandoffBehavior =“撰写”
使用硬件而不是软件加速。
避免WindowStyle=None
, AllowTransparency=true
, Background=Transparent
, TileMode
配置RenderOptions.BitmpaScalingMode
为 LowQuality 并启用缓存。使能够PresentationFontCache
窗口服务。
Use Staticresources
over Dynamicresources
避免可继承的依赖属性。还要避免属性更改回调中的繁重操作。
使用可冻结的笔刷。避免x:Name
/ Namescoping
/ Binding
给他们的Color
使它们始终可冻结。
设置边框的背景(如果它封装了视觉对象)而不是设置视觉对象的背景。类似的是,如果您设置了Brush
作为视觉背景,然后指定Brush.Opacity
than Visual.Opacity
.
值转换器必须具有简约代码。使用Binding.IsAsync
and PriorityBinding
凡适用。
Use Expanders
with IsExpanded=False
默认情况下。
CompositionTarget.Rendering
在每个渲染周期触发,因此应仅在需要时使用。抓住任何机会将其拆下。
WPF DataGrid
应避免大量使用组合框列和可编辑模板列,因为组合框模板尝试加载所选值并通过从项目源实际搜索来使用显示成员路径each当与高度可观察的集合一起使用时,组合框和模板列会泄漏。
使用基于 WPF 扩展工具包的着色器效果和新的像素着色器 API
例如模糊、阴影。
还有很多...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)