问题描述
我创建了一个从 TabItem 继承的派生控件。当 TabItem 处于溢出状态时,我希望根据一些条件更改 TabItem 的外观。但是,我无法创建一个绑定到 ToolBar.IsOverflowItem 的 multidatatrigger 条件 - 这是一个附加属性。
在 ControlTemplate.Triggers 中,我想做的是:
<ControlTemplate.Triggers>
<multidatatrigger>
<multidatatrigger.Conditions>
<Condition Binding="{Binding TabStripPlacement,RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Top"/>
<Condition Binding="{Binding ToolBar.IsOverflowItem,RelativeSource={RelativeSource Self}}" Value="True"/>
</multidatatrigger.Conditions>
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="BorderThickness" Value="1"/>
</multidatatrigger>
</ControlTemplate.Triggers>
我认为语法是正确的,但它没有触发。为了解决它,我用这样的触发器替换了 multidatatrigger:
<Trigger Property="ToolBar.IsOverflowItem" Value="True">
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="BorderThickness" Value="1"/>
</Trigger>
该触发器可以正常工作,并且也可以用作 MultiTrigger 中的条件。所以 - 为了进一步解决绑定语法的问题,我尝试了以下方法,它应该与上面的触发器具有相同的效果:
<multidatatrigger>
<multidatatrigger.Conditions>
<Condition Binding="{Binding ToolBar.IsOverflowItem,RelativeSource={RelativeSource Self}}" Value="True"/>
</multidatatrigger.Conditions>
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="BorderThickness" Value="1"/>
</multidatatrigger>
同样没用。我已经尝试了多种其他方式在 multidatatrigger 环境(包括不同的 RelativeSources)中设置条件,但根本无法触发它。它仅在我将其设置在 Trigger 上下文或 MultiTrigger 上下文中时触发。
任何人都可以帮忙.......在 multidatatrigger 中绑定到 ToolBar.IsOverflowItem 的正确语法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)