我正在尝试将触发器应用于我制作的基本 WPF 窗口。我可以成功地对其应用样式,但触发器似乎不起作用。
本质上,我所做的是在运行时将当前资源字典转储到应用程序中并加载到另一组资源字典中以解决高对比度问题。它似乎正在工作,但我正在尝试制定一个需要在高对比度模式下处理的图像的解决方案。在这种特殊情况下,窗口的背景设置为 ImageBrush。在高对比度模式下,我正在尝试使用触发器将背景设置为系统颜色。
我尝试了这个解决方案,但似乎都不起作用:
<Style TargetType="{x:Type local:Mywindow}">
<Setter Property="Tag"
Value="{DynamicResource {x:Static SystemParameters.HighContrastKey}}" />
<Style.Triggers>
<Trigger
Property="Tag"
Value="True">
<Setter Property="Background" Value="{DynamicResource MyColor}"/>
</Trigger>
</Style.Triggers>
</Style>
并且
<Style TargetType="{x:Type local:Mywindow}">
<Style.Triggers>
<DataTrigger
Binding="{Binding Source={x:Static SystemParameters.HighContrast}}"
Value="True">
<Setter Property="Style" Value="{DynamicResource highContrastStyle}"/>
</DataTrigger>
</Style.Triggers>
</Style>