我正在研究WPF项目的UI方面。我最喜欢的参考资料是XAML'ing,现在是Adam Nathan的“Windows Presentation Foundation Unleashed”。他提供了有关控件模板的以下提示:“不要在控件模板中使用ContentControl
,而应使用重量较轻的ContentPresenter
元素。”
与我合作的开发人员通常也会告诉我在我所做的所有XAML中使用最轻量级的元素 - 我完全理解。
如何找出不同元素的相对“权重”是什么?有明显的事情,例如RichTextBox
与TextBox
。但是,我怎么弄清楚,例如,StackPanel
是否比任何一个都可以完成工作的网格更好?
元素/控件的可视化树是否是“重量”的良好指标?我还能看到什么?
答案 0 :(得分:1)
当谈到ContentPresenter与ContentControl之类的东西时,你可以检查继承层次结构:ContentPresenter派生自FrameworkElement,而ContentControl派生自Control。
就面板而言,基本上Grid具有最复杂的布局逻辑(这就是为什么它是最灵活的),所以通常任何其他面板如果能完成工作会更好。如果你想要一个面板复杂性的具体指南,我会按照从最小到最复杂的顺序列出它们: