我想'定义一个网格中特定类型的每个控件都获得一个Style。只需将具有TargetType的样式放在网格资源中即可。但是,如果我不想将这个网格重用为一种风格呢?
我可以创建网格样式并设置资源设置器,但只能在其中放置一种样式。
<Style x:Key="GridStyle" TargetType="Grid">
<Setter Property="Resources">
<Setter.Value>
<Style TargetType="TextBlock" BasedOn="{StaticResource MainText}" />
<Style TargetType="{x:Type RowDefinition}">
<Setter Property="Height" Value="Auto"/>
</Style>
<Style TargetType="Button" BasedOn="{StaticResource MainButton}" />
</Setter.Value>
</Setter>
</Style>
无效,因为setter只能放入一种样式。
这可能非常简单,但我没有得到它,我不想在每个网格中重复这些样式。
答案 0 :(得分:8)
如果将样式放在外部样式的资源中,它们将位于网格内的范围内:
<Style x:Key="GridStyle" TargetType="Grid">
<Style.Resources>
<Style TargetType="TextBlock" BasedOn="{StaticResource MainText}" />
<Style TargetType="{x:Type RowDefinition}">
<Setter Property="Height" Value="Auto"/>
</Style>
<Style TargetType="Button" BasedOn="{StaticResource MainButton}" />
</Style.Resources>
</Style>