如何修改我的.NET 4.8 WPF应用程序的DPI感知设置?
当然,这个我早就上网查过了。于是我把app.manifest加上
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
</windowsSettings>
</application>
也许不起作用是因为我引用了WinRT、Win2D,并且我有一个MSIX打包项目?
解决方案
我终于自己找到了答案。
问题在于MSIX项目不会把我的EXE项目输出文件夹中的manifest文件拷贝到打包输出文件夹中。因此所有manifest设置都会丢失。
解决办法是将manifest嵌入到MyApp.exe文件中,而不是在输出文件夹里放一个MyApp.exe.manifest文件(它是app.manifest的拷贝)。这可以通过编辑MyApp.csproj文件来实现。
它包含如下内容:
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
只需要再插入一行(使用文本编辑器,因为这个选项在VS 2026的项目设置中不可用):
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
<GenerateManifests>false</GenerateManifests>
</PropertyGroup>
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。