Nur eine kurze Verständnisfrage. Ich teste mich gerade an Styles und hab einen implizierten Style mit TargetType=TextBox definiert. Wenn ich jetzt einen neuen Style mit TargetType=TextBox definiere, dann bekomme ich eine Exception. Egal ob der neue Style impliziert ist oder ich ihn mit einem Namen versehen. Kann es sein, dass man nur einen Style mit TargetType definieren kann?
Hier der Code. Heißt ich kann keinen neuen Style für TextBox erzeugen, selbst wenn ich ihn mit x:Name versehen, wenn es schon einen implizierten Style für TextBox gibt?
<Window x:Class="Styles_Trigger_Templates.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="550" Width="525">
<Window.Resources>
<Style TargetType="TextBox" >
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Trigger.Setters>
<Setter Property="Foreground" Value="White" />
<Setter Property="Background" Value="Black" />
</Trigger.Setters>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.Setters>
<Setter Property="Background" Value="LightGray" />
</Trigger.Setters>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Name="tbStyle" TargetType="TextBox">
<Setter Property="Background" Value="White" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={x:Static RelativeSource.Self},Path=Text}" Value="rot" >
<Setter Property="Background" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={x:Static RelativeSource.Self},Path=Text}" Value="gelb" >
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={x:Static RelativeSource.Self},Path=Text}" Value="schwarz" >
<Setter Property="Background" Value="Black" />
<Setter Property="Foreground" Value="White" />
</DataTrigger>
</Style.Triggers>
</Style>
Hallo KPhoenix,
soweit ich weiß werden Resourcen nicht per 'Name' sonder per 'Key' identifizert.
Also so:
<Style x:Key="tbStyle" TargetType="TextBox">
Gruß,
xan
Oh man wie peinlich. Natürlich war da der Fehler. Sonst hab ich auch immer x:Key verwendet, nur da nicht. Danke 👍