0
<Window x:Class="AiweeeTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.Resources>
<SolidColorBrush x:Key="backcolorType" Color="Red"></SolidColorBrush>
<SolidColorBrush x:Key="forecolorType" Color="Green"></SolidColorBrush>
<Style x:Key="TextboxStyle" TargetType="{x:Type TextBox}">
<Setter Property="Background" Value="Yellow"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" Value="{StaticResource backcolorType}"/>
<Setter Property="Foreground" Value="{StaticResource forecolorType}"/>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<TextBox Name="textbox1" Width="100" Height="25" Style="{StaticResource TextboxStyle}" IsEnabled="False"/>
</Grid>
</Window>
上記で定義したトリガーを使用してテキストボックスの背景を更新することはできませんが、テキストボックスコントロールテンプレートテンプレート全体をコピーして "DisabledBackgroundBrush"私自身の色です。違いは何ですか、私はすでにこの問題に関していくつかのリンクを見てきました。しかし私はそれの背後にある理由を理解することができません。私が理解しているように、トリガは定義された順序で起動されますが、ウィンドウ内でローカルに定義されたトリガは、無効にしたときにテキストボックスの背景色をオーバーライドできる必要があります。どうか明らかにしてください。Textboxテンプレートを使用しないローカルトリガーの無効な背景
PS:私はここで特別なことを達成しようとしているわけではありませんが、なぜそうであるか理解したいだけです。これは、WPFのような状況で直感的ではないという私に少し不満を与えています。
そうに中
しかし、これはトンです! –