命名样式非常有用,当你得到一组属性并应用到特点的元素上。然而,如果 你想要应用一个统一的样式到所有确定元素类型的实例,设置TargetType而不用 一个Key,如示例5-16所示。
示例5-16
<!-- no Key -->
<Style TargetType="{x:Type Button}">
<Setter Property="FontSize" Value="32" />
<Setter Property="FontWeight" Value="Bold" />
</Style>
<!-- no Key -->
<Style TargetType="{x:Type TextBlock}">
<Setter Property="FontSize" Value="32" />
<Setter Property="FontWeight" Value="Thin" />
<Setter Property="Foreground" Value="White" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
<Button Grid.Row="0" Grid.Column="0" x:ID="cell00" />
<TextBlock Grid.Row="5" Grid.ColumnSpan="5" x:ID="statusTextBlock" />
在示例5-16所示,我们已经得到了两种样式,一种是带有TargetType的 Button,没有key;另一种是带有TargetType的TextBlock,没有key。它们都以 同样的方式工作;当创建一个Button或TextBlock的实例而不用现实地设置Style 属性,它使用的样式将目标类型匹配到控件的类型。我们的元素类型样式返回了 我们的游戏如图5-4所示。
元素类型样式是便利的,无论何时你想要所有特定元素的实例共享一个外观 ,依赖于范围。例如,迄今,在顶级窗体中,我们已经在示例中为样式设置了范 围,如示例5-17。
示例5-17
<!-- Window1.xaml -->
<Window >
<!-- every Button or TextBlock in the Window is affected -- >
<Window.Resources>
<Style TargetType="{x:Type Button}"></Style>
<Style TargetType="{x:Type TextBlock}"></Style>
</Window.Resources>
</Window>