【发布时间】:2011-08-17 15:48:49
【问题描述】:
我在 XAML 中定义了一个 TextBox 控件,我想根据其 IsReadOnly 或 IsEnabled 属性为 TextBox 应用不同的背景颜色。我使用 dataTriggers 在颜色之间进行实际切换,如下所示:
<Style x:Key="TextBoxStyle" TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding IsEnabled}" Value="True">
<Setter Property="TextBox.Background" Value="Yellow"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsReadOnly}" Value="True">
<Setter Property="TextBox.Background" Value="Red"/>
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsReadOnly}" Value="True"/>
<Condition Binding="{Binding IsEnabled}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Green"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
而TextBox的定义如下图:
<TextBox Name="sourceTextBox" Margin="5,3,5,3" IsReadOnly="True" Style="{StaticResource TextBoxStyle}" />
但问题是,颜色没有正确应用。
上面的方法有问题吗?
【问题讨论】:
标签: wpf xaml datatrigger multidatatrigger