Hallo zusammen,
ich möchte gerne mehrere WPF Controls(Buttons, Statusbar etc.) mit der Eigentschaft Background in der Farbe Schwarz versehen. Jetzt hab ich mich mal bisschen umgesehen und bin dabei auf folgendes Beispiel:
<Window.Resources>
<Style TargetType="StatusBar">
<Setter Property="Background" Value="Black"/>
</Style>
</Window.Resources>
Klappt auch soweit. Kann ich es aber so einrichten das ich sage das ALLE Controls in meinem Programm die Farbe Schwarz haben ,oder muss ich für jedes Control einen neuen Style aufrufen ?
Grüße
Hallo Steffen2012,
setz als TargetType mal Control.
Gruß
pinki
Danke für die Antwort 😃. allerdings tut sich da gar nichts. Die Controls behalten ihre ursprüngliche Farbe bei.
<Window.Resources>
<Style x:Key="BaseStyle" TargetType="{x:Type Control}">
<Setter Property="Background" Value="Black"/>
</Style>
</Window.Resources>
<Grid>
<Grid.Background>
<ImageBrush ImageSource="Images\Other\997_neu.png" Stretch="UniformToFill" />
</Grid.Background>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Ribbon Grid.ColumnSpan="3" Style="{StaticResource BaseStyle}" >
<StatusBar Grid.Row="3" Grid.ColumnSpan="3" Height="23" Style="{StaticResource BaseStyle}">
</StatusBar>
</Grid>
Hab da noch was gefunden.Diese Lösung funktioniert soweit. Aber gibt es vll. noch eine kürzere Variante. Quasi global festlegen das es für alle Controls automatisch übernommen wird.
Hallo Steffen2012
<Style x:Key="MyControlDefault" TargetType="{x:Type Control}">
<Setter Property="Background" Value="Black" />
</Style>
Gruss
Coffeebean
Edit: Mist, zu spät 😉
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo,
Du kannst Bei den einzelnen Controls (also die von Control erben) folgendes sagen:
<Grid><Grid.Resources>
<Style x:Key="FontSize16" TargetType="{x:Type Control}" >
<Setter Property="FontSize" Value="16"/>
</Style>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource FontSize16}" />
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource FontSize16}" />
</Grid></Grid.Resources>
So musst du nicht z.b. bei jeder StatusBar den Style angeben.
Ich stand letztens auch vor dem selben Problem, fand aber heraus dass man Control an sich nicht als
targetType verwenden kann, jedenfalls führt das nicht direkt zum gewollten ergebnis.
MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden!
*"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht."
*"Ignorance simplifies ANY problem."
*"Stoppt die Piraterie der Musikindustrie"
Hallo Steffen2012,
Kleine ergänzung: um den Style wirklich global verfügbar zu machen, kannst du ihn entweder in die Resourcen der App.xaml legen oder ein Theme verwenden, wie in http://www.microsoft.com/germany/msdn/solve/knowhow/howto/cliententwicklung/WieThemeIchEineWPFAnwendung.aspx gezeigt.