下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C#获取Windows10屏幕缩放比例的操作方法现在1920x1080以上分辨率的高分屏电脑渐渐普及了。我们会在Windows的显示设置里看到缩放比例的设置。在Windows桌面客户端的开发中,有时会想要精确计算窗口的面积或位置。然而在默认情况下,无论WinForms的Screen.Bounds.Width属性还是WPF中SystemParameters.PrimaryScreenWidth属性,以下图举例,将会返回除以150%的数值1280。而不是真实的物理分辨率1920。
接下来介绍如何获取Displayresolution中显示的实际分辨率。通过如下Win32API的调用:
[DllImport("gdi32.dll",EntryPoint="GetDeviceCaps",SetLastError=true)]
publicstaticexternintGetDeviceCaps(IntPtrhdc,intnIndex);
该方法可以获取设备的硬件信息,可以通过第二个参数nIndex来指定要查询的具体信息。例如我们要用到的以像素为单位的桌面高度DESKTOPVERTRES。
enumDeviceCap
VERTRES=10,
PHYSICALWIDTH=110,
SCALINGFACTORX=114,
DESKTOPVERTRES=117,
///default.aspx/gdi32/GetDeviceCaps.html
}
在获得物理像素高度后,通过计算不难得出屏幕的缩放比列。
privatestaticdoubleGetScreenScalingFactor()
varg=Graphics.FromHwnd(IntPtr.Zero);
IntPtrdesktop=g.GetHdc();
varphysicalScreenHeight=GetDeviceCaps(desktop,(int)DeviceCap.DESKTOPVERTRES);
varscreenScalingFactor=
(double)physicalScreenHeight/Screen.PrimaryScreen.Bounds.Height;
//SystemParameters.PrimaryScreenHeight;
returnscreenScalingFactor;
}
在获取屏幕缩放比例后,诸如通过Graphics类的CopyFromScreen方法来截屏,或者精确控制窗口大小和位置才得以正确实现。
其实在WinForms程序中,我们还有更简单的方式来实现类似效果。即在工程中添加app.manifest文件,将dipAware节点的值设为true。这样修改后,Screen.PrimaryScreen.Bounds将获得实际的物理分辨率尺寸,同时你还会发现WinForms程序不糊了。这是因为Windows默认WinForms程序不支持DPI感知,在高分屏下就直接粗暴的把窗体放大。
applicationxmlns="urn:schemas-microsoft-com:asm.v3"
windowsSettings
dpiAwarexmlns="/SMI/2005/WindowsSettings"true/dpiAware
/windowsSettings
/application
该设置对WPF无效,WPF默认支持DPI感知功能。而从UWP开始Windows客户端技术全面支持高分屏即高DPI缩放。老旧应用程序不肯升级,以至无法支持高分屏,这锅某软背着挺冤的……
所以同学们,现在开始全面转向WinUI3吧,这货是这么些年某软兜兜转转,客户端技术集大成者。用WindowsAPPSDK创建UnpackgedApp时,恍惚间仿佛回到了在XP上装.NETRuntime的时光。
因为Github访问时常抽风,我将示例代码在Gitee上也同步了一份:
Ho
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 杭州高新金投控股集团有限公司及下属子公司2026年招聘7人考试备考试题及答案解析
- 2026年建筑塑料行业分析报告及未来发展趋势报告
- 2026年甘肃省酒泉市第二人民医院康复治疗人员招聘事宜补充考试参考试题及答案解析
- 2026年远距离跟踪镜头行业分析报告及未来发展趋势报告
- 2026年超高频管行业分析报告及未来发展趋势报告
- 2026电建海投公司总部财务资金部财务共享中心财务主管(报表编制)招聘2人考试参考试题及答案解析
- 2026福建大武夷绿色食品科技研发有限公司招聘1人考试备考题库及答案解析
- 2026年聚合物固相萃取柱行业分析报告及未来发展趋势报告
- 2026年乙烯与四氟乙烯共聚物行业分析报告及未来发展趋势报告
- 2026年工艺行业分析报告及未来发展趋势报告
- 宜宾市自然资源和规划局竞争性比选工作人员的考试参考试题及答案解析
- 《道路运输企业主要负责人和安全生产管理人员安全考核机动车维修企业》专业部分题库(附答案)
- 20.2电生磁教案(表格式)2025-2026学年初中物理人教版九年级全一册
- 霍桑红字介绍
- TGXAS-抗肿瘤药物临床试验护理工作规范编制说明
- 美团推广合同范本
- 网络金融部业务知识考试题库
- 税务领导选拔面试题目及答案
- 内分泌危象识别与应急处理
- 机关人员公务出差审批单
- 2025年(重点)水利安全员B证近年考试真题题库及答案
评论
0/150
提交评论