mikebai.com

  • Home
  • dev
  • DotNET
  • M365
  • 搞笑
  • 杂七杂八
  • FocusDict
個人BLOG
it developer
  1. Main page
  2. DotNET
  3. Main content

c# winform适配高dpi

2025-04-28 44hotness 0likes 0comments

1)添加app.manifest文件

改文件创建后的路径 > "myproj\Properties\app.manifest"

方法1

打开vs2005、vs2008等工程,在【解决方案资源管理器】里查看是否有app.manifest这个文件,如果没有的话,通过以下方法创建:
方法1:
1、在【解决方案资源管理器】右键工程名称选择属性;
2、在弹出的该对话框中,选择【安全性】选项卡。
3、勾选【启用ClickOnce安全设置】,并选中【这是完全可信的应用程序】。
4、保存工程,这时候app.manifest就自动创建了。

方法2

为工程项目添加一个类,应用程序清单文件(app.manifest)。

高 DPI 支持 - Windows Forms .NET Framework | Microsoft Learn

仅在以 .NET Framework 4.7 为目标并在从 Windows 10 创意者更新开始的 Windows 操作系统上运行的应用程序中提供支持高 DPI 感知的新 Windows 窗体功能。

此外,若要在 Windows 窗体应用程序中配置高 DPI 支持,必须执行以下操作:

  • 声明与 Windows 10 的兼容性。为此,请将以下内容添加到清单文件:
    XML
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
      <application>
        <!-- Windows 10 compatibility -->
        <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
      </application>
    </compatibility>
    
    
    

    プロジェクトにアプリケーションマニフェストファイルapp.manifestを追加し、下記の設定を記入します。
    この設定でWindowsが高DPIサポート済と認識してくれるので、表示がぼやけることが無くなります。

    <application xmlns="urn:schemas-microsoft-com:asm.v3">
      <windowsSettings>
        <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
      </windowsSettings>
    </application>
    

  • 在 app.config 文件中启用每监视器 DPI 感知。Windows 窗体引入了一个新的 <System.Windows.Forms.ApplicationConfigurationSection> 元素,用于支持从 .NET Framework 4.7 开始添加的新增功能和自定义项。 若要利用支持高 DPI 的新功能,请将以下内容添加到应用程序配置文件。
    XML
    <configuration>
      <!-- ... other xml settings ... -->
    
      <System.Windows.Forms.ApplicationConfigurationSection>
        <add key="DpiAwareness" value="PerMonitorV2" />
      </System.Windows.Forms.ApplicationConfigurationSection>
    
    </configuration>

 

最后设置指定容器模式为dpi

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;

注意form中控件字体也可能导致ui崩溃

Tag: Nothing
Last updated:2025-05-05

mikebai

This person is a lazy dog and has left nothing

Like
< Last article

COPYRIGHT © 2025 mikebai.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang