前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018-11-14-window的VirtualScreen

2018-11-14-window的VirtualScreen

作者头像
黄腾霄
发布2020-06-10 11:22:38
3590
发布2020-06-10 11:22:38
举报
文章被收录于专栏:黄腾霄的博客

桌面应用常常会遇到多显示器适配问题,比如我们会期望让小人从最左边的屏幕跑到最右边,或者将一个窗口藏在所有显示器的显示区域之外。


在wpf中,我们我们有一个类叫做SystemParameters, 他提供了一些列系统相关的参数属性。

我们在这里需要注意的是两个系列

  • PrimaryScreen系列:包括PrimaryScreenHeightPrimaryScreenWidth
  • VirtualScreen系列:包括VirtualScreenHeightVirtualScreenTop,VirtualScreenLeftVirtualScreenTop

PrimaryScreen指的是系统的主屏幕。就是我们在显示设置中,确定的主显示器所显示的屏幕。

主屏幕的左上角点一定是(0,0),所有的其他显示器的显示屏幕坐标都是相对于主屏幕的坐标来确定的。

这也是为什么PrimaryScreen只提供了宽高的数据。

VirtualScreen指的是系统的虚拟屏幕。他是将所有的屏幕用最小的矩形包裹的区域。

如图中的蓝色虚线区域。

值得注意的是VirtualScreen的左上角点很可能处于不可显示区域。

这是处于各个显示器的分辨率,DPI不同,且多显示器也可能采用横排,竖排和九宫格方式进行布置。

不能简单的进行水平方向的对齐。

事实上,如果你使用截图软件对多屏幕进行截图,就可以发现VirtualScreen所存在的那些非显示区域

参考链接:


本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/window%E7%9A%84VirtualScreen.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档