Visual Studio重装后WPF项目主窗口无法适配Windows系统缩放比例
修复WPF窗口不跟随系统缩放的方案
根因说明
你之前设置的VSXAML_DISABLE_ON_DEMAND_RESOURCE_VALUES环境变量是微软针对特定资源找不到错误的临时修复方案,该变量会破坏XAML的按需资源加载逻辑,进而影响WPF的系统DPI适配能力,是导致问题的核心原因。
修复步骤
- 第一步:删除违规环境变量
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 分别在「用户变量」和「系统变量」列表中查找
VSXAML_DISABLE_ON_DEMAND_RESOURCE_VALUES条目,找到后直接删除 - 重启电脑让环境变量修改生效
- 第二步:确认项目DPI感知配置开启
打开项目的app.manifest文件,添加/修改如下配置段(如果没有manifest文件,可右键项目→添加→新建项→选择「应用程序清单文件」创建):
也可以在项目的<application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware> </windowsSettings> </application>Properties/AssemblyInfo.cs文件中添加如下代码开启DPI感知:[assembly: System.Windows.Media.DisableDpiAwareness(false)] - 第三步:重置VS XAML设计器配置
关闭所有Visual Studio窗口,打开VS自带的「开发者命令提示符」,执行以下命令重置VS用户配置(执行前请先备份自定义快捷键、扩展配置等个性化设置):devenv /resetuserdata - 第四步:清理项目缓存重编
删除项目根目录下的bin、obj文件夹,重新打开项目执行生成操作即可。
验证方法
修改完成后分别将系统缩放调整为125%、150%启动项目,设置为Height="450" Width="800"的窗口会跟随缩放比例同步放大,窗口内文本、控件尺寸也会同步适配。
内容的提问来源于stack exchange,提问作者denisnumb
相关产品推荐
相关产品推荐

