C# 将前景色绑定到控件';被剥夺的国家
将Microsoft.Windows.Controls.Ribbon.RibbonTab对象上的标签颜色绑定到其启用状态时遇到问题 我首先尝试了以下方法:C# 将前景色绑定到控件';被剥夺的国家,c#,wpf,xaml,.net-4.0,styles,C#,Wpf,Xaml,.net 4.0,Styles,将Microsoft.Windows.Controls.Ribbon.RibbonTab对象上的标签颜色绑定到其启用状态时遇到问题 我首先尝试了以下方法: <Style TargetType="{x:Type r:RibbonTab}"> <Setter Property="Foreground" Value="White" /> <Style.Triggers> <DataTrigger Binding="{Bindin
<Style TargetType="{x:Type r:RibbonTab}">
<Setter Property="Foreground" Value="White" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsEnabled}" Value="False">
<Setter Property="Foreground" Value="Gray" />
</DataTrigger>
</Style.Triggers>
</Style>
但这也失败了,出现了以下编译时错误:
System.Windows.UIElement.IsenableChanged=“RibbonTab_IsenableChanged_事件”无效。”IsEnabledChanged'必须是以关键字“Event”结尾的名称注册的RoutedEvent。
我如何才能让它工作?您是否尝试过:
<Style TargetType="{x:Type r:RibbonTab}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsEnabled}" Value="False">
<Setter Property="Foreground" Value="Gray" />
</DataTrigger>
</Style.Triggers>
<Setter Property="Foreground" Value="White" />
</Style>
尝试一个简单的属性触发器:
<Style TargetType="{x:Type r:RibbonTab}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="Gray" />
</Trigger>
</Style.Triggers>
<Setter Property="Foreground" Value="White" />
</Style>
在我看来,该绑定刚刚被破坏,您是否甚至在控制模板的上下文中?你知道TemplatedParent
是如何工作的吗?有吗?那很有效。谢谢你,我不敢相信我没有先尝试这个更简单的方法。@H.B.是的。我把二传手移到了扳机后。我看到了这一点。请注意,史蒂夫的解决方案也做了同样的事情;到目前为止,我还没有看到任何情况下,这将是一个不同的。如果你能给我看一个我会很感兴趣的。。。
<Style TargetType="{x:Type r:RibbonTab}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsEnabled}" Value="False">
<Setter Property="Foreground" Value="Gray" />
</DataTrigger>
</Style.Triggers>
<Setter Property="Foreground" Value="White" />
</Style>
<Style TargetType="{x:Type r:RibbonTab}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="Gray" />
</Trigger>
</Style.Triggers>
<Setter Property="Foreground" Value="White" />
</Style>