【发布时间】:2011-10-23 03:55:46
【问题描述】:
我制作了一个应用程序资源,其样式应在文本框具有“IsReadOnly”属性时触发。看起来像这样:
<Application.Resources>
<Style TargetType="{x:Type TextBox}" >
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Trigger.Setters>
<Setter Property="Background" Value="Black" />
</Trigger.Setters>
</Trigger>
</Style.Triggers>
</Style>
</Application.Resources>
但是,程序对此没有反应。它在我使用 IsEnabled=True 时有效。但是 IsEnabled=False 也不起作用。所以,问题:只有当你检查“真”时,触发器才起作用? IsReadOnly 根本不支持吗?如果是这样:我如何知道实际支持哪些控件属性?
【问题讨论】:
-
您是否在文本框中设置了背景,即
<TextBox Background="White" />?样式中触发器中的 setter 只能覆盖样式设置的属性,不能覆盖直接在元素中设置的属性。 -
不,我没有,Heinzi... 文本框如下所示:
-
另外,您需要另一个带有
Value="False"(或Comparison="NotEqual")的触发器才能将背景重置为其原始状态。
标签: c# wpf resources triggers textbox