首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应式UI提示

响应式UI提示
EN

Stack Overflow用户
提问于 2011-11-01 17:15:08
回答 3查看 1.7K关注 0票数 8

当我想要创建一个响应式UI时,我想要一些提示。

我知道如何使用:

代码语言:javascript
复制
Dispatcher
Task
BackgroundWorker
Threads

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

代码语言:javascript
复制
PriorityBinding
Populating ComboBoxes
Populating ListBoxes, ListViews

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-01 17:47:25

与基于animation

  • Vitualization的单线程和线程不可知的CollectionView.

  • Readymade操作相比,animation

  • Vitualization上的canvas

  • Deferred scrolling

  • Trigger.Exnter \ Exit Actions for animations.

  • BeginStoryboard.HandoffBehavior="Compose"

  • Using Hardware over software acceleration.

  • Avoiding GifsAllowTransparency=trueBackground=TransparentTileMode

  • Configure RenderOptions.BitmpaScalingMode as LowQuality并启用缓存。启用PresentationFontCache Dynamicresources

  • Avoid服务。

  • 在windows可继承依赖属性上使用Staticresources。在属性改变的回调中也要避免繁重的操作。

  • 使用可冻结的笔刷。避免对它们的Color属性执行x:Name / Namescoping / Binding将它们设置为始终可冻结。

  • 设置边框的背景,如果它封装了可视对象,则设置可视对象的背景。类似的是,如果您将Brush设置为视觉背景,然后指定Brush.Opacity,则Visual.Opacity.

  • Value转换器必须具有最低限度的代码。默认情况下,在applicable.

  • Use IsExpanded=False的任何位置使用Binding.IsAsyncPriorityBinding

  • CompositionTarget.Rendering会在每个渲染周期触发,因此应仅在需要时使用。在任何opportunity.

  • WPF上分离它应该避免大量使用组合框列和可编辑模板列,因为combobx模板试图加载选定值并使用显示成员路径,方法是在与高度可观察的collections.

  • Use DataGrid Extedned based Shader effects和新的像素着色器API(如模糊、阴影。

)一起使用时,从的项源中实际搜索每个组合框和模板列泄漏的值

还有更多..。

票数 16
EN

Stack Overflow用户

发布于 2011-11-02 15:15:30

我总是发现延迟加载非常有助于防止一次加载大量数据,这是处理大量数据时大部分启动时间的地方。将您的记录绑定到virtualized项控件,以最小化内存占用(显然,WPF是您判断内存中所需内容的标准)。

但老实说:马丁是相当的right...50+数据绑定控件,...man,这是该死的;-)

而你对100%响应性的追求,我想,需要进一步的解释。据我所知,应用程序可以响应,也可以不响应(接受用户输入/产生输出,而不是什么都不做)。你的目标是最好的性能吗?或者这是您面临的行锁场景(允许用户在对某些记录执行长任务时编辑其他记录)?

我认为AngelWPF提到的一些内容可以在关于优先级绑定的this neat article中找到。

票数 1
EN

Stack Overflow用户

发布于 2011-11-01 17:28:50

单个UI上的50+控件听起来像是由程序员设计的,优化代码可能会在一段时间内抵消真正的问题。加快速度的最好办法是将你的功能分离到不同的屏幕上,或者将较少使用的信息隐藏在菜单后面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7964445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档