各位
我从一位同事那里听说,作为一名使用Microsoft Expression Blend的设计师,我应该避免过度嵌套面板元素,因为它们的计算成本很高。
例如,我倾向于创建带有标题的主窗口和带有网格的自定义状态栏,然后取顶部面板并在其中放置网格,如果我在已经网格化的顶部面板上的矩形内有消息,我会创建另一个网格,等等。
作为一个非常注重布局的设计师(无论屏幕尺寸如何,他都想最有效地使用每个屏幕),考虑到绝对的控制和灵活性,我知道这是最好的方法,可以防止窗口以"不可预测"的方式调整大小;oP
但是。。。…我的一个朋友说,如果你有五个网格嵌套在一起,如果你把鼠标放在它们上面,你会生成五个鼠标事件,这是非常昂贵的。
此外,如果由于在实际渲染之前有太多容器要求子级大小而导致计算过多,则成本也可能很高。
我以前在PyGtk方面有一些经验,我必须说,我在所有脚本中都使用了大量的布局面板,即使是窗口的大小调整在我看来也从来没有特别昂贵,除非我有一些复杂的画布需要重新计算。
有人对此有任何经验或了解吗?
非常感谢您阅读
对此没有直接的答案,但很明显,参与布局的元素越多,窗口的测量和安排阶段就越长。根据您使用的面板类型的哪些功能,成本可能会或多或少,但可以肯定的是,您使用的越多,布局计算过程中的开销就会越多。通过阅读MSDN的整篇文章,您可以了解更多关于布局系统如何工作的信息。
最后,除非你疯了,否则这通常不会成为一个问题。为了找出它是否会给你的应用程序带来问题,我建议使用WPF性能套件进行一些性能测试。
我不会那么担心,到目前为止我还没有遇到任何问题。运用一些常识,在哪种情况下需要什么面板?你真的需要另一个小组来实现你的目标吗?
MSDN关于这个问题的文章可能很有意思,因为它解释了一些不简单的事情:优化性能:布局和设计