我正在WPF项目的UI端工作。我最喜欢的参考,而xaml'ing(除了stackoverflow :))此刻是亚当内森的“Windows演示基础释放”。他给出了关于控制模板的以下提示:“不要在控件模板中使用ContentControl,而应该使用更轻量级的ContentPresenter元素”。更轻的元素 - 如何测量/知道元素的重量?
我一起工作的开发人员通常也告诉我用最轻便的元素我所能在所有我做的xaml'ing - 这我完全理解。
我(!天真的)问题是:我如何找出什么不同元素的相对“权重”是谁?有很明显的事情,比如RichTextBox与TextBox。但是,我怎么知道在一个能够完成这个任务的情况下,StackPanel是否比Grid更好呢?
元素/控件的视觉树是“重量”的好指标吗?我还能看到什么?
在此先感谢。
嗨安倍 首先,谢谢。 从您的答案:“...您可以检查继承层次结构:ContentPresenter派生自FrameworkElement,而ContentControl派生自Control。” 因此,派生自Control的东西总是比来自FrameworkElement.Panel派生的东西“重一些”,因为控件的控件模板包含一系列的功能? 并且:“网格 - 最灵活,因此具有最复杂的布局算法。” 即灵活性通常也是重量的良好指示。 (我在这里大声思考,所以纠正我,如果我错了!) – cfouche 2010-03-11 07:06:43
是的,我同意你的所有澄清。我会说Controls的模板化是真正让他们变得更重的原因。由于您可以将控件的可视化树重新定义为全局样式,因此作为对照作者,您不知道要添加多少个视觉效果...... – 2010-03-11 21:21:46