请问wpf的xmal中如何使Style支持多种控件呢?
时间: 2024-10-14 12:18:20 浏览: 15
在WPF中,为了使一个`Style`支持多种控件,你需要使用`TargetType`属性指定该样式可以应用于哪些类型的控件。`TargetType`属性是一个`Type`类型的值,它可以是特定控件的类型,也可以是一个`Control`或`UIElement`的泛型类型,这样就可以同时适用于很多基础元素。
以下是一个例子,创建一个通用的`Style`,适用于所有`Button`和`TextBlock`控件:
```xml
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="LightGreen"/>
</Style>
<Style x:Key="MyUniversalStyle" TargetType="{x:Type Control}">
<!-- 这里可以添加适用于所有控件的通用样式 -->
<Setter Property="Foreground" Value="Black"/>
</Style>
```
在这个例子中,第一个`Style`只作用于`Button`,第二个`Style`则作用于所有的`Control`派生类,包括`Button`、`TextBlock`等。
然后你在XAML中应用这个通用样式到任何一个需要的控件上,只需给它们添加`Style`的`Name`或`Key`属性,并指向你刚才创建的`Style`的`x:Key`:
```xml
<Button Style="{StaticResource MyUniversalStyle}" Content="点击我"/>
<TextBlock Style="{StaticResource MyUniversalStyle}">Hello World</TextBlock>
```
阅读全文