WPF中三种方法得到当前屏幕的宽和高

这篇具有很好参考价值的文章主要介绍了WPF中三种方法得到当前屏幕的宽和高。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DPI设备为120(每个英寸120个像素),那此时每个WPF单位对应应该是120/96=1.25个像素

一般在程序中我们常常需要得到当前屏幕的宽和高,常见做法有:

1.这两个方法可以返回当前屏幕选择的分辨率,该分辨率是以像素为单位,在DPI为96的情况下我们可以利用它们来做一些控件的定位,因为此时WPF单位对应一个像素,而当DPI非96的情况下,用该分辨率来做定位就会发现误差了,因此此时每个WPF单位并不是对应于一个像素

System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height

2.这两个方法可以返回当前屏幕的宽和高,它是与设备无关的单位(1/96英寸),因此用它来做控件的定位,在DPI改变的情况下,也不会发生定位上的误差

SystemParameters.PrimaryScreenWidth
SystemParameters.PrimaryScreenHeight

3.这两个方法可以返回当前屏幕工作区的宽和高(除去任务栏),它也是与设备无关的单位,通常我们可以结合2和3来得到任务栏的高度文章来源地址https://www.toymoban.com/news/detail-525938.html

SystemParameters.WorkArea.Size.Width
SystemParameters.WorkArea.Size.Height

到了这里,关于WPF中三种方法得到当前屏幕的宽和高的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js中三种URI编码方式比较

    数据传递常需要编码后传递,接收还需反编译,定义url: var url = \\\"https://www.cnblogs.com/?username=\\\'小森森\\\'password=\\\'666666\\\'\\\"; https%3A//www.cnblogs.com/%3Fusername%3D%27%u5C0F%u68EE%u68EE%27%26password%3D%27666666%27 https%3A%2F%2Fwww.cnblogs.com%2F%3Fusername%3D\\\'%E5%B0%8F%E6%A3%AE%E6%A3%AE\\\'%26password%3D\\\'666666\\\' https://www.cnblogs

    2024年02月04日
    浏览(45)
  • Get请求中三种传参方式解读

    这几天我在看go-zero框架,实现了一个简单的单体服务,但是使用postman测试接口的时候遇到点问题 error:field id is not set。就是说请求的参数解析失败 发现是我的入参的tag标签和传参对不上 一、使用form标签(最常用) form标签就是最常用的一种,form就是表单的意思,通过url传

    2023年04月21日
    浏览(41)
  • js中三种for循环(含案例分析)

    js中的for循环有三种 :1.普通的for循环 ,2.for in 循环 ,3.for of 循环 它们三个各自有各自的特点和作用,下面我会用一个小案例来帮助大家理解它们三个的区别 (三种for循环都能写break,return等跳出) **案例:**现在想用for循环展示lists里的name数据 第一种普通for循环遍历出的数据

    2024年02月09日
    浏览(37)
  • git修改当前项目仓库地址的三种方法

    一、前言 最近公司将gitlab整体迁移了,换了新的地址,虽然在迁移的时候将相关分支信息、代码拷过去了;但是我们开发人员在迁移过程中也会有新的代码产出;或者由于项目原因,没有及时更新地址,造成大量新的代码产出! 怎么样将自己新产出的代码提交的新库呢? 方

    2024年02月13日
    浏览(45)
  • JAVA中三种I/O框架——BIO、NIO、AIO

    BIO,同步阻塞IO模型,应用程序发起系统调用后会一直等待数据的请求,直至内核从磁盘获取到数据并拷贝到用户空间; 在一般的场景中,多线程模型下的BIO是成本较低、收益较高的方式。但是,如果在高并发的场景下,过多的创建线程,会严重占据系统资源,降低系统对外

    2024年02月08日
    浏览(55)
  • Android中保持屏幕常亮的三种使用方法

    目录 一、设置Flag 二、使用View类中的属性方法 1、Xml布局中设置: 2、功能代码中设置: 三、Wakelock 锁定机制 1、简介 2、作用 3、分类标志 4、使用方法 (1)在AndroidManifest.xml中设置权限 (2)通过PowerManager类获取WakeLock类的实例对象 (3)注意事项 (4)优化措施 (5)总结

    2024年02月07日
    浏览(44)
  • QtCreator中三种不同编译版本 debug、release、profile 的区别

    debug调试模式,编译后的可执行文件很大,带了很多调试符号信息等,方便开发阶段调试的时候进入具体的堆栈查看值。会打开所有的断言,运行阶段性能差速度慢,可能会有卡顿感觉。 release发布模式,编译后的可执行文件很小,不带任何调试符号信息,一般用于打包发布程

    2024年02月10日
    浏览(45)
  • WPF 通过 GetMessageExtraInfo 方法获取当前收到的鼠标消息是否由触摸转换过来

    本文将告诉大家如何在 WPF 或者其他 Win32 应用里面,在收到鼠标消息时,通过 GetMessageExtraInfo 方法获取当前收到的鼠标消息是否由触摸消息提升而来 大家都知道,在不开启 WM_Pointer 的情况下,无论是走 WM_Touch 或者是 RealTimeStylus 等方式,默认下触摸都会提升为鼠标消息从而更

    2024年04月25日
    浏览(32)
  • selenium中三种等待方式:sleep,implicitly_wait,WebDriverWait

    强制等待, sleep,设置等待多长时间,就要等待多长时间。等待完成后,才会继续下一步: 相比较于sleep的强制等待,selenium中还有种等待,可以称之为智能等待:implicitly_wait。所谓智能等待,就是在我设置的等待时间范围内,只要满足了我的条件,就会立即结束等待,继续

    2024年02月16日
    浏览(59)
  • Linux中三种安装形式(rpm、tar/tar.gz(解压缩)、yum)

    1.1 查询 rpm -qa 描述:查询所安装的所有rpm软件包 1.2 卸载 rpm -e 描述:卸载软件包 描述:卸载软件时,不检查依赖 1.3 安装 rpm -ivh 描述:安装rpm包 1.4 案例 1.5 常用 rpm -qa|grep rpm软件包 检查 rpm -e --nodeps rpm软件包版本信息 卸载 rpm -ivh rpm包 安装 2.1 命令 tar -zxvf .tar.gz安装包 tar

    2024年01月21日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包