在
我定义了以下样式:
我已经定义了一些网格,我有四个TextBlocks
:
Server IP Port Status
问题:我需要参考textBlockStyle
四次.
问题:是否可以在内部WrapPanel
或其他地方设置该样式一次而不重复对样式的引用?
也许是这样的:
Server IP Port Status
我不是在寻找全球解决方案!我可以删除该x:Key="textBlockStyle"
属性,但这会影响窗口中的所有 属性TextBlocks
.我需要一个更具选择性的机制,但没有那个丑陋的代码重复.
您有几个选项,按照它们的缩放程度排列.
选项1:在较低级别定义没有键的样式
您可以将资源粘贴到该WrapPanel
级别,以便它只影响其中的控件WrapPanel
:
注意缺少钥匙.这Style
将适用于所有TextBlock
s内WrapPanel
.
选项2:使用键定义样式,而不是在较低级别定义样式
如果Style
使用键定义更高级别,则可以Style
在没有键的情况下在较低级别定义另一个级别,并将其Style
基于较高级别的级别:
这导致Style
自动应用于TextBlock
s内部WrapPanel
,但不在其外部.此外,您不会复制它们的详细信息Style
- 它们存储在更高级别.
选项3:将样式放在ResourceDictionary中并有选择地合并它
最后,您可以将Style
s放在一个单独的位置,ResourceDictionary
并有选择地将该字典合并到控件的Resources
集合中:
现在,您可以根据需要在单独的词典中定义任意数量的样式集,然后有选择地将它们应用于元素树.