C#应用更新至.NET 4.6.1后,如何选择加入无障碍改进解决属性网格报错?
解决Property Grid编辑ContentAlignment时的无障碍改进错误
这个问题本质是.NET框架的无障碍改进启用规则导致的——从.NET 4.7开始,微软分阶段推出了无障碍功能升级,要启用后续的改进,必须按顺序关闭所有更早版本的旧无障碍特性开关。即使你现在用的是4.6.1,也可以通过手动配置AppContext开关来满足这个"选择加入"的要求,消除错误提示。
具体解决步骤:
在你的应用程序的app.config(Windows Forms/WPF应用适用)文件中,找到<runtime>节点(如果没有就新建),添加对应的AppContext开关配置:
基础配置(适用于所有需要启用新无障碍改进的场景)
<configuration> <runtime> <!-- 关闭最基础的旧无障碍特性开关 --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false" /> </runtime> </configuration>
如果你的目标框架是.NET 4.7.1及以上,还需要补充:
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.1=false" />
如果目标框架是.NET 4.7.2及以上,需要完整添加:
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.1=false;Switch.UseLegacyAccessibilityFeatures.2=false" />
为什么会出现这个错误?
当你首次编辑ContentAlignment属性时,Property Grid会初始化和无障碍相关的组件,此时框架会检查AppContext开关的设置:如果某个高版本的无障碍改进开关被启用(或默认启用),但更早的旧开关没有同步关闭,就会触发这个提示。通过按顺序关闭所有旧开关,你就完整"选择加入"了所有后续的无障碍改进,错误自然会消失。
内容的提问来源于stack exchange,提问作者Robert Deml
相关产品推荐
相关产品推荐

