【问题标题】:How does WPF optimise the layout / rendering cycle?WPF 如何优化布局/渲染周期?
【发布时间】:2013-03-21 14:33:30
【问题描述】:

WPF 如何在高度不稳定的应用程序中优化布局/渲染周期?

例如,假设我快速连续两次使自定义控件无效,它会呈现两次吗?当数据/属性更新速率快于主渲染速率时是否存在性能问题?

【问题讨论】:

    标签: c# .net wpf performance


    【解决方案1】:

    根据我的经验,我可以说不,如果足够快,它不会渲染两次。 我不是 100% 确定,但这就是我认为的原因:

    我们有一个非常繁重的应用程序(数千个控件),它是一个飞机驾驶舱,全部在 wpf 中,每个按钮、开关、屏幕都可以通过手势或鼠标移动。

    驾驶舱为 10 000 x 10 000 像素,并实现了放大/缩小(使用鼠标滚轮),在单击鼠标右键时进行平移。

    在优化之前,它非常滞后、缓慢,因此每个“缩放”步骤或“平移”步骤大约需要 1 秒

    如果我缩放 1 次(例如缩放 * 1.2),则需要 1 秒

    如果我缩放 10 次(缩放 * 1.2 X 10),它不需要 10 秒,可能需要 2 秒,具体取决于您滚动的速度,并且它不会渲染每个“缩放步骤”它只渲染最后一个...

    【讨论】:

    • 哇.... 10k x 10k... 具有缩放功能和数以千计的控件... 这是一个地狱般的 UI..
    • 这个驾驶舱只用于基础训练,让学生在没有真实驾驶舱的情况下“导航”进入驾驶舱,在培训课上老师解释面板时使用,解释女巫按钮做这个和那个...它不用于完整的模拟
    • 这很有趣,我认为控件绑定到的属性的更新速度将比 1/秒快得多。我很想知道,在渲染整个屏幕时,无属性更新和常规属性更新之间是否存在明显差异(即每秒几次)
    • @mlemay 你是如何优化它的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2018-09-10
    • 2014-07-15
    • 2012-12-21
    相关资源
    最近更新 更多