获取UWP屏幕分辨率

wcavell UID.34926
2015-08-30 发表


由于UWP在DeskTop上是窗口模式,常规的只能获取到窗口的分辨率,获取不了显示器的分辨率。
就是ApplicationView.GetForCurrentView().VisibleBounds 或者Window.Current.Bounds.Width 都是窗口的分辨率。
经过探索,如果使用 PointerDevice.GetPointerDevices() 能获取DeskTop的显示器的分辨率,手机上就有问题了。

二度探索,利用D3D,也能获取窗口的分辨率,先创建D3D11CreateDevice,获取ID3D11Device2,利用ID3D11Device2再获取IDXGIDevice3,然后获取IDXGIAdapter,再获取IDXGIOutput。
DXGI_OUTPUT_DESC desc;
dxgiOutput->GetDesc(&desc);
desc.DesktopCoordinates.right, desc.DesktopCoordinates.bottom。
也就获取窗口的分辨率。

标签: 分辨率 显示器

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
h82****652 UID.880817
2015-08-31 回复

顶楼主一个,终于找到方法获取屏幕分辨率了。-_-
之前都是用WebView配合Javascript来获取的。

手机上有问题那个我刚才试了一下,需要将宽和高乘以DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel这个,这样Desktop和Mobile都没问题了。给楼主点个赞。
D3D那个我之前在预览版的时候试过,那时候是用不了的,现在就不知道了,感觉D3D这种方法还是不太稳定。

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报