当前位置: 首页 > news >正文

网站开发培训流程国外申请域名的网站

网站开发培训流程,国外申请域名的网站,网络加速器海外,首选大型网站建站公司现在1920x1080以上分辨率的高分屏电脑渐渐普及了。我们会在Windows的显示设置里看到缩放比例的设置。在Windows桌面客户端的开发中,有时会想要精确计算窗口的面积或位置。然而在默认情况下,无论WinForms的Screen.Bounds.Width属性还是WPF中SystemParamet…

现在1920x1080以上分辨率的高分屏电脑渐渐普及了。我们会在Windows的显示设置里看到缩放比例的设置。在Windows桌面客户端的开发中,有时会想要精确计算窗口的面积或位置。然而在默认情况下,无论WinForms的Screen.Bounds.Width属性还是WPF中SystemParameters.PrimaryScreenWidth属性,以下图举例,将会返回除以150%的数值1280。而不是真实的物理分辨率1920。

接下来介绍如何获取Display resolution中显示的实际分辨率。通过如下Win32 API的调用:

[DllImport("gdi32.dll", EntryPoint = "GetDeviceCaps", SetLastError = true)]public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);

该方法可以获取设备的硬件信息,可以通过第二个参数nIndex来指定要查询的具体信息。例如我们要用到的以像素为单位的桌面高度DESKTOPVERTRES。

enum DeviceCap{VERTRES = 10,PHYSICALWIDTH = 110,SCALINGFACTORX = 114,DESKTOPVERTRES = 117,// http://pinvoke.net/default.aspx/gdi32/GetDeviceCaps.html}

在获得物理像素高度后,通过计算不难得出屏幕的缩放比列。

private static double GetScreenScalingFactor(){var g = Graphics.FromHwnd(IntPtr.Zero);IntPtr desktop = g.GetHdc();var physicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);var screenScalingFactor = (double)physicalScreenHeight / Screen.PrimaryScreen.Bounds.Height;//SystemParameters.PrimaryScreenHeight;return screenScalingFactor;}

在获取屏幕缩放比例后,诸如通过Graphics类的CopyFromScreen方法来截屏,或者精确控制窗口大小和位置才得以正确实现。
其实在WinForms程序中,我们还有更简单的方式来实现类似效果。即在工程中添加app.manifest文件,将<dipAware>节点的值设为true。这样修改后,Screen.PrimaryScreen.Bounds将获得实际的物理分辨率尺寸,同时你还会发现WinForms程序不糊了。这是因为Windows默认WinForms程序不支持DPI感知,在高分屏下就直接粗暴的把窗体放大。

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

该设置对WPF无效,WPF默认支持DPI感知功能。而从UWP开始Windows客户端技术全面支持高分屏即高DPI缩放。老旧应用程序不肯升级,以至无法支持高分屏,这锅某软背着挺冤的……
所以同学们,现在开始全面转向WinUI 3吧,这货是这么些年某软兜兜转转,客户端技术集大成者。用Windows APP SDK创建Unpackged App时,恍惚间仿佛回到了在XP上装.NET Runtime的时光。
因为Github访问时常抽风,我将示例代码在Gitee上也同步了一份:

How to get Windows display scale using C#. (github.com)
How to get Windows display scale using C#. (gitee.com)

http://www.yayakq.cn/news/305213/

相关文章:

  • 长沙培训网站制作免费网站外链推广
  • 有个网站可以接单做设计的宁波网页关键词优化公司
  • 棠下手机网站建设成都成华区两位区领导聊天记录
  • 儿童网站网页设计广州网站改版设计
  • 网站开发需要什么基础知识软件开发公司介绍怎么写
  • 有可以做ssgsea的网站么亿速云
  • 泰州网站制作工具推广发帖网站
  • 长沙长沙网站建设公司网站设计要求 优帮云
  • 网站底部导航淮南房地产网站建设网站
  • 网页制作与网站建设自考百度站长平台网站提交
  • 网站建设新闻++常识网站开发培训培训班
  • 广州哪里有做网站的用户要承担暖气费的税吗
  • 太原的网站搭建公司信阳网站优化
  • 外贸大型门户网站制作公司网站非响应式模板
  • 闸北区网站建设网网站后台做完文章不显示
  • 网站开发需求 德州有哪些做室内设计好用的网站
  • 网站建设如何盈利太原网站备案现场核验
  • 长春营销型网站设计2015年手机网站需要主机 空间
  • 怎么免费建立公司网站wordpress主题安装在哪个文件夹
  • 建站大师阙梅娇简介wordpress登录qq微信登录界面
  • 自己建网站做那个模块好淘宝官网首页卖家中心
  • 化妆品购物网站开发的意义fzzz主题wordpress
  • 商城网站建设公司哪家好上海外贸网站推广公司
  • 网站的空间flat wordpress
  • 长乐建设局网站写网页用什么软件
  • 庆阳logo设计太原seo外包平台
  • 专做短篇的网站项目计划书封面设计
  • 绍兴网站建设方案策划网站建设中什么意思
  • 河南网站建设服务淮安建设机械网站
  • 华为云做的网站怎么样网站建设合伙人