2010-10-13 47 views
6

我怎样才能有一个没有目标类型的WPF样式(可以应用于所有对象的WPF样式)?WPF风格没有目标类型?

<Style x:Key="Basic" TargetType="???"> 
    <Setter Property="FontFamily" Value="Tahoma"/> 
    <Setter Property="FontSize" Value="12"/> 
</Style> 

我想基于这种“基本”风格的所有其他风格。

问候, MadSeb

回答

14

追加 “控制”。到Property的开始处,然后删除TargetType。然后,在从它派生的样式中,使用BasedOn和指向基本Style的StaticResource。

<Style x:Key="basicStyle"> 
    <Setter Property="Control.FontFamily" Value="Tahoma" /> 
    <Setter Property="Control.FontSize" Value="12" /> 
</Style> 

<Style TargetType="{x:Type Label}" BasedOn="{StaticResource basicStyle}"> 
    <Setter Property="HorizontalAlignment" Value="Right" /> 
    <Setter Property="VerticalAlignment" Value="Center" /> 
</Style> 
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource basicStyle}"> 
    <Setter Property="HorizontalAlignment" Value="Left" /> 
    <Setter Property="VerticalAlignment" Value="Center" /> 
</Style> 
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource basicStyle}"> 
    <Setter Property="HorizontalAlignment" Value="Center" /> 
    <Setter Property="VerticalAlignment" Value="Center" /> 
    <Setter Property="Margin" Value="2,4" /> 
</Style>