在编写WPF / Silverlight应用程序时,我有时会在确定某个属性是否应该放在某个样式中还是直接留在该元素上时会遇到困难。决定时使用什么准则?
答案 0 :(得分:3)
我认为它通常归结为样式重用和整体项目组织。
如果它是一种样式,您将在控件(例如画笔)中的许多不同元素中重复使用,或者甚至在项目中的许多不同控件中重复使用,您显然希望将其拉出到自己的资源中。为了更好地组织,您甚至可能希望将这些共享样式放在他们自己的资源字典文件中,并使用MergedDictionaries将它们引入不同的控件。实际上,您也可以使用BasedOn
属性在不同样式之间创建一些非常有用的级联效果。
当它只是一个特定元素的“一次性”特征时,我认为可以将样式属性直接保留在元素上。如果它不需要共享并且样式对于一个元素(特定的边框,边距等)是唯一的,则将它直接保留在元素上会更容易和更易读。
答案 1 :(得分:1)
非常好的问题。有两种情况我将属性移动到样式中。
1)过度拥挤的属性 - 过度拥挤的属性只不过是用于自定义元素的属性太多。比如说。如果您有一个文本块并想要自定义几乎所有属性。然后,它会降低可读性。如果它有像触发器这样的东西那也是如此。它太拥挤了。到那时,我曾经把它们变成了一种风格。
2)重复使用的样式 - 如果我想应用同一组属性来应用于控件,这是显而易见的情况。通常我们会按x:key
或TargetType
执行此操作。
HTH