当某个视图模型进入脱机状态时,我试图将圆形叠加层置于顶部。因此它变得部分透明,并且在网格中的其他元素之上。
样式中的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>
答案 0 :(得分:7)
您的语法正确,但问题是您在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的文章