C 獲取當前螢幕的寬高和位置

2021-09-07 19:58:57 字數 1475 閱讀 6230

原文:

c# 獲取當前螢幕的寬高和位置

本章主要介紹如何獲取當前視窗所在螢幕的資訊

如果當前是單螢幕,可以直接獲取主螢幕

var primaryscreen = screen.primaryscreen;

如果當前是多屏,建議通過視窗控制代碼獲取screen資訊

var window = window.getwindow(exportbutton);//

獲取當前主視窗

var intptr = new windowinterophelper(window).handle;//

獲取當前視窗的控制代碼

var screen = screen.fromhandle(intptr);//

獲取當前螢幕

dpi轉換比例常量,dpipercent = 96;

為何dpipercent為96 ?有乙個概念「裝置無關單位尺寸」,其大小為1/96英吋。比如:

【物理單位尺寸】=1/96英吋 * 96dpi = 1畫素;

【物理單位尺寸】=1/96英吋 * 120dpi = 1.25畫素;

bounds對應的是螢幕的解析度,而要通過bounds.width獲取螢幕的寬度,則需要將其轉化為wpf單位的高寬。

步驟:獲取當前螢幕的物理尺寸(x/y方向的畫素)--如x方向 currentgraphics.dpix / dpipercent

將screen.bounds的資訊轉化為wpf單位資訊 --如高度 screen.bounds.width / dpixratio

using (graphics currentgraphics =graphics.fromhwnd(intptr))

也可以通過system.windows.systemparameters,直接獲取主螢幕資訊,不過這個類只能獲取主螢幕的高寬。

這裡的高寬指的是實際高寬。

主螢幕:

var screenheight =systemparameters.primaryscreenheight;

var screenwidth = systemparameters.primaryscreenwidth;

多屏時全螢幕:

var primaryscreenheight =systemparameters.fullprimaryscreenheight;

var primaryscreenwidth = systemparameters.fullprimaryscreenwidth;

當前工作區域:(除去工作列的區域)

var workareawidth =systemparameters.workarea.size.width;

var workareaheight = systemparameters.workarea.size.height;

關鍵字:wpf單位,螢幕高寬/位置

C 獲取當前螢幕的寬高和位置

本章主要介紹如何獲取當前視窗所在螢幕的資訊 如果當前是單螢幕,可以直接獲取主螢幕 var primaryscreen screen.primaryscreen 如果當前是多屏,建議通過視窗控制代碼獲取screen資訊 var window window.getwindow exportbutton ...

獲取螢幕的高和寬

displaymetrics dm getresources getdisplaymetrics int width dm.widthpixels int height dm.heightpixels 上面的方法是獲取整個螢幕的高度和寬度,可是有的時候activity被巢狀使用,所以需要獲得acti...

獲取螢幕的寬高

獲取螢幕長寬常用方法有三種 androidmanifest.xml檔案中,加入supports screens節點,這樣的話,當前的android程式就支援了多種解析度,那麼就可以得到正確的物理尺寸了。方法一 windowmanager wm windowmanager getsystemservi...