工控软件开发
级别: 正式会员
精华主题: 0
发帖数量: 42 个
工控威望: 89 点
下载积分: 504 分
在线时间: 4(小时)
注册时间: 2023-04-06
最后登录: 2024-06-04
查看工控软件开发的 主题 / 回贴
楼主  发表于: 2024-06-04 22:46

C# Winform 在低DPI创建窗体后,在高DPI运行时,窗体会自动拉伸,导致窗体显示不全,

比如在分辨率为100% 的电脑创建C#项目,当运动到分辨率为125%的电脑运行时,后者运行的窗体会自动拉伸,窗体显示超出页面等问题。

选中项目,右键点属性》查看WINDOWS设置,修改app.manifest,启用下列功能(前面的'去掉)       
修改文件:app.manifest       

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

-----------------

第2种方法:

经过多次尝试,解决该问题比较方便的一个方式是,在项目中添加 应用程序清单文件即可。

具体步骤如下:

1、启动项目找到 添加 》添加新建项(选应用程序清单文件):

2、添加后在项目中找到添加的文件APP.manifest双击打开,

3、找到app2.manifest里面的内容,添加如下的内容:

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

4、保存,然后重新生成解决方案。解决自动拉伸问题。

我的博客,你可以先看一下我的文章和以前帮别人解决的一些技术问题。
专注VB编程开发20年的博客_CSDN博客-作品成品 开发的一些软件,股票分析理财投资,自动编程 源码库领域博主

https://blog.csdn.net/xiaoyao961
雪山飞狐
级别: 网络英雄
精华主题: 0
发帖数量: 12258 个
工控威望: 14678 点
下载积分: 36979 分
在线时间: 927(小时)
注册时间: 2019-06-05
最后登录: 2024-11-22
查看雪山飞狐的 主题 / 回贴
1楼  发表于: 2024-06-05 07:30
研究研究一下。