首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WPF 度量系統詳解:裝置獨立單位 (DIU) 與 DPI 縮放關係

     編輯:關於.NET

核心概念

WPF 不使用像素作為佈局單位,改用 裝置獨立單位 (Device Independent Unit, DIU)。
1 DIU = 1/96 英吋,固定不變。

實際像素計算公式

實際像素 = DIU 數值 × 系統 DPI ÷ 96

  • 系統 DPI = 96 (Windows 預設 100%):96 DIU = 96 像素
  • 系統 DPI = 120 (125% 縮放):96 DIU = 120 像素
  • 系統 DPI = 144 (150% 縮放):96 DIU = 144 像素

螢幕物理尺寸推算

已知螢幕解析度與尺寸可算出實際 DPI:

螢幕 DPI = √(水平像素² + 垂直像素²) / 螢幕對角吋數

範例

裝置尺寸解析度約略 DPI96 DIU 物理長度
筆電12.5 吋1366×768~125 DPI< 1 吋
桌機螢幕18.5 吋1366×768~85 DPI> 1 吋

結論:相同 96 DIU 的按鈕,在高 DPI 筆電上物理尺寸較小,在低 DPI 桌機螢幕上較大。WPF 自動縮放確保 UI 在不同裝置上物理大小大致一致。

開發實務建議

  • 佈局尺寸一律使用 DIU(XAML 數值即為 DIU),勿硬編碼像素。
  • 圖片資源提供多倍圖(@1x, @1.5x, @2x)或使用向量圖形(Path/Geometry)確保高 DPI 清晰。
  • 測試時在 Windows 設定調整縮放比例(100%/125%/150%/175%/200%)驗證佈局不崩壞。
  • 程式碼中需轉換時:pixels = diu * (dpi / 96.0),可用 VisualTreeHelper.GetDpi(visual) 取得當前 DPI(.NET 4.6.2+)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved