gpt4 book ai didi

wpf - 如何通过 DataTrigger 设置 Panel.ZIndex 或其他附加属性?

转载 作者:行者123 更新时间:2023-12-04 21:45:06 26 4
gpt4 key购买 nike

当某个 View 模型进入离线状态时,我试图让一个圆形覆盖层出现在顶部。因此它变得部分透明并位于网格中的其他元素之上。

样式中的 DataTriggers 到目前为止适用于所有内容,但我无法设置 Panel.ZIndex。构建或运行没有错误,但属性未设置(我假设是因为它是附加属性?)

<Ellipse Fill="DarkGray" Panel.ZIndex="-10" Width="50" Height="50">
<Ellipse.Style TargetType="Ellipse">
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Status}" Value="Offline">
<Setter Property="Opacity" Value=".6" />
<Setter Property="Panel.ZIndex" Value="10" />
</DataTrigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
</Ellipse>

最佳答案

您的语法是正确的,但问题是您正在定义 Panel.ZIndex<Ellipse>标签,标签本身中设置的属性将优先于任何触发值。

要修复它,只需设置 Panel.ZIndex用你的风格代替 Ellipse标签

<Ellipse Fill="DarkGray" Width="50" Height="50">
<Ellipse.Style TargetType="Ellipse">
<Style>
<Setter Property="Panel.ZIndex" Value="-10" />
<Style.Triggers>
<DataTrigger Binding="{Binding Status}" Value="Offline">
<Setter Property="Opacity" Value=".6" />
<Setter Property="Panel.ZIndex" Value="10" />
</DataTrigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
</Ellipse>

请参阅 MSDN 关于 Dependency Property Precedence 的文章了解更多信息

关于wpf - 如何通过 DataTrigger 设置 Panel.ZIndex 或其他附加属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9793001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com