日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

VS 2022 設(shè)計(jì) WinForm 高DPI兼容程序

admin
2024年11月5日 17:18 本文熱度 1098
前言?


本文主要解決兩個(gè)問(wèn)題

  • C# Winform高DPI字體模糊

  • 高DPI下(縮放>100%), UI設(shè)計(jì)器一直提示縮放到100%, 如果不重啟到100%,設(shè)計(jì)的控件會(huì)亂飛

建立測(cè)試程序

1、新建.NET Windows窗體應(yīng)用 (Winform)工程

2、選擇.NET 6.0

3、將窗體尺寸定為 1000 x 1000, 用于后面檢測(cè)縮放是否正確

4、添加一個(gè)按鈕, 尺寸定為 150 x 50

5、添加一個(gè)圖片框, 尺寸定為 300 x 300, 右鍵導(dǎo)入一張圖片


6、添加測(cè)試代碼

namespace?WinFormsApp1
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????}

????????private?void?Form1_Load(object?sender,?EventArgs?e)
????????{
????????????Text?=?this.Width?+?"x"?+?this.Height?+?"?pic?"+?pictureBox1.Width?+?"x"?+?pictureBox1.Height?+?啟動(dòng)環(huán)境();?

????????}

????????public?static?string?啟動(dòng)環(huán)境()
????????{
#if?NET461
????????????return?(".NET?Framework?4.6.1");
#elif?NET6_0
????????????return?(".NET6");
#endif??
????????}

????}
}

7、運(yùn)行看看效果: .NET 6 下運(yùn)行,尺寸都是對(duì)的

正式開(kāi)始

1、右鍵工程,添加應(yīng)用程序清單?app.manifest, 文件名用默認(rèn),修改

取消這段的注釋,打開(kāi)感知 DPI

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

2、雙擊工程名稱(chēng), 編輯配置文件,

TargetFrameworks?改為雙目標(biāo)框架?<TargetFrameworks>net6.0-windows;net461;</TargetFrameworks>?, 保存后提示重載工程, 最好是關(guān)閉vs再打開(kāi)一次.

完整文件如下

<Project?Sdk="Microsoft.NET.Sdk">

?<PropertyGroup>
??<OutputType>WinExe</OutputType>
??<TargetFrameworks>net6.0-windows;net461;</TargetFrameworks>
??<UseWindowsForms>true</UseWindowsForms>
??<ApplicationManifest>app.manifest</ApplicationManifest>
??<ApplicationVisualStyles>true</ApplicationVisualStyles>
??<ApplicationUseCompatibleTextRendering>false</ApplicationUseCompatibleTextRendering>
??<ApplicationHighDpiMode>SystemAware</ApplicationHighDpiMode>
?</PropertyGroup>

?<ItemGroup>
??<Compile?Update="Properties\Resources.Designer.cs">
???<DesignTime>True</DesignTime>
???<AutoGen>True</AutoGen>
???<DependentUpon>Resources.resx</DependentUpon>
??</Compile>
?</ItemGroup>

?<ItemGroup>
??<EmbeddedResource?Update="Properties\Resources.resx">
???<Generator>ResXFileCodeGenerator</Generator>
???<LastGenOutput>Resources.Designer.cs</LastGenOutput>
??</EmbeddedResource>
?</ItemGroup>
</Project>

3、如果提示找不到控件, 在 Form1.Designer.cs 和 Form1.cs 添加

using?System;
using?System.Windows.Forms;

4、Program.cs注釋掉?ApplicationConfiguration.Initialize();

5、運(yùn)行選擇?net461

備注:我的屏幕是 2800 x 1800,縮放 175%

果然, 顯示尺寸不對(duì)

6、Form1.cs 添加 'AutoScaleMode = AutoScaleMode.Dpi;'

public?Form1()
{
????AutoScaleMode?=?AutoScaleMode.Dpi;?//添加這句,要在'InitializeComponent();'上方
????InitializeComponent();
}

再次運(yùn)行

7、雙擊編輯窗體,沒(méi)有提示100%縮放, 添加標(biāo)準(zhǔn)菜單和DataGridView測(cè)試

完美!雙倍的快樂(lè)!

總結(jié)

  • 新建.Net Windows窗體應(yīng)用 (Winform)工程 [.Net6.0]
  • 添加應(yīng)用程序清單?app.manifest, 打開(kāi)感知 DPI
  • TargetFrameworks?改為雙目標(biāo)框架?<TargetFrameworks>net6.0-windows;net461;</TargetFrameworks>
  • Program.cs注釋掉?ApplicationConfiguration.Initialize();
  • AutoScaleMode = AutoScaleMode.Dpi;?//添加這句,要在'InitializeComponent();'上方

老工程也可以通過(guò)編輯projet文件升級(jí)到這種新工程格式,支持本文說(shuō)的功能


配套DEMO

https://github.com/densen2014/WinformHighDPICompatibleProgram

https://gitee.com/alexchow/WinformHighDPICompatibleProgram

轉(zhuǎn)自:AlexChow

鏈接:cnblogs.com/densen2014/p/16142939.html


該文章在 2024/11/6 10:35:13 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 人成在线v网站 | 日韩美女乱淫 | 国产玉足脚交极品在线 | 国产午夜三级一区二区三 | 日本欧美国产婷婷 | 国产午夜免费一区二区三区 | 国产欧美日 | 中文字幕日本αv一区二区 乱伦国产精品日本 | 亚洲视频日本在 | 欧美激情视频在线免费观看 | 国产狂喷潮在线观看 | 亚洲电影在线观看 | 91啪在线观看国产在线 | 国产免费一级高清 | 精品国产福利在线观看 | 亚洲国产日韩精品 | 99欧美午夜一区二区福利 | 亚洲国产尤物高清在线观看 | 免费a级伦费影视在线观看 国产91精品露脸国语对白 | 国产精品一区二区三 | 亚洲综合一区二区三区人妖 | 在线视频一区二 | 亚洲欧美中文字幕无线 | 秋霞手机免费 | 国内精品手机在线观看视频 | 欧洲精品视频一二三区视频 | 国产吹潮视频在线观看 | 豆奶视频官网下载 | 乱码高清在线观看 | 亚洲天堂激情在线看 | 欧美日韩一区二区三区在线视频 | 国产欧美日韩va另类在线播放 | 日本高清视频一区 | 深夜日本 | 成人精品免费视频在线观看 | 可以看差差直播的软件 | 日本三级强在线观看 | 99香蕉国产精品偷在线观看 | 日本亚洲视频免费观看 | 激情刮伦小说目录 | 学生精品国自产拍中文 |