我遇到了一些绑定到一组单选按钮的项目样式的问题。基本上,我的样式有以下代码:
<Window.Resources>
<Style x:Key="boxStyle" TargetType="TextBox">
<Setter Property="Background" Value="Black"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="Blue"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
然后我有两个单选按钮,如下所示:
<RadioButton Name="optionA" IsChecked="True">Option A</RadioButton>
<RadioButton Name="optionB'>Option B</RadioButton>
此处显示两个文本框:
<TextBox Style="{StaticResource boxStyle}" IsEnabled="{Binding ElementName=optionA, Path=IsChecked}"/>
<TextBox Style="{StaticResource boxStyle}" IsEnabled="{Binding ElementName=optionB, Path=IsChecked}"/>
绑定正常工作(选中选项A时,启用一个框,另一个框不启用)。但是,当其中任何一个框被禁用时,它不符合上面定义的样式。无论我将样式颜色更改为什么,背景都会变为白色。
有人有什么想法吗?感谢。
答案 0 :(得分:0)
据我所知,禁用时使用的颜色在模板中是硬编码的,除非它引用系统颜色,否则您无法轻易更改它,在这种情况下您可以覆盖。
默认的Aero主题使用ListBoxChrome
控件,不确定是否可以相应地更改其背景,它没有模板,因此可能很难修改它。你当然可以把它扔掉并使用你想要的任何东西(你可以修改)。