Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF Style with no target type?

How can I have a WPF style that has no target type ( one that can be applied to all objects) ?

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

I want to base all other styles on this "basic" style.

Regards, MadSeb

like image 894
MadSeb Avatar asked Oct 13 '10 15:10

MadSeb


1 Answers

Append "Control." to the beginning of the Property, and remove the TargetType. Then, in the styles that derive from it, use BasedOn with a StaticResource pointing at the base Style.

<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>
like image 117
Wonko the Sane Avatar answered Nov 15 '22 20:11

Wonko the Sane