WPF 中的样式
介绍性发言
在 WPF 中, Style 定义给定可视元素的一个或多个依赖项属性的值。整个应用程序使用样式以使用户界面更加一致(例如,为所有对话框按钮提供一致的大小),并使批量更改更容易(例如,更改所有按钮的宽度。)
样式通常在应用程序中的高级别的 ResourceDictionary
中定义(例如在 App.xaml 或主题中),因此它可以在应用程序范围内使用,但它们也可以针对单个元素及其子元素进行定义,例如应用风格到 StackPanel
内的所有 TextBlock
元素。
<StackPanel>
<StackPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="5,5,5,0"/>
<Setter Property="Background" Value="#FFF0F0F0"/>
<Setter Property="Padding" Value="5"/>
</Style>
</StackPanel.Resources>
<TextBlock Text="First Child"/>
<TextBlock Text="Second Child"/>
<TextBlock Text="Third Child"/>
</StackPanel>
重要笔记
- 定义样式的位置会影响它的可用位置。
StaticResource
无法解决前向引用。换句话说,如果你要定义依赖于资源字典中的另一个样式或资源的样式,则必须在它所依赖的资源之后/之下定义它。StaticResource
是引用样式和其他资源的推荐方法(出于性能和行为原因),除非你特别要求使用DynamicResource
,例如,对于可在运行时更改的主题。
资源
MSDN 上有关于样式和资源的详尽文章,这些文章的深度超出了这里提供的深度。