【发布时间】:2015-05-06 00:38:05
【问题描述】:
在 .NET 4.5 中,我可以使用:
SystemParameters.StaticPropertyChanged += SystemParameters_StaticPropertyChanged;
但这在 .NET 4.0 中不受支持。但是,SystemParameters 确实可以访问 HighContrast 值和 HighContrastKey ResourceKey。如何监视 ResourceKey 的值的更改,以便我可以模仿 PropertyChanged 事件?我知道 XAML 中的 DynamicResource 可以做到这一点,但这需要在后面的代码中完成。
是否可以仅使用 C# 而不是 XAML 来检测 ResourceKey 值的变化?
更新 我不能使用 .NET 4.5 的原因是 (1) XP 不受支持,并且 (2) 我的安装程序坚持他需要检测并安装 4.5.2(不是 4.5 或4.51),这意味着所有操作系统都必须安装 .NET。呃。
【问题讨论】:
-
不完全监控 ResourceKey,但是当用户设置更改时,SystemEvents.UserPreferenceChanged 事件将被触发。如果用户更改为高对比度模式,则 UserPreferenceChangedEventArgs 的类别将为 Accessibility。
-
你的答案是 Szabolcs 是最好的