2017-01-19 38 views
2

Windows 7で使用可能なDPIスケーリングは100%、125%、150%、200%です。これら4つのDPI割合について 実際のDPI値DPI実際のDPI値へのスケーリング

Percentage - DPI Values 
100%  - 96 
125%  - 120 
150%  - 144 
200%  - 192 

は、DPIスケーリングのためのリンクを参照してくださいされています。私は、DPI値を取るようにしたいC#を使用して http://www.techrepublic.com/blog/windows-and-office/get-a-better-view-in-windows-7-by-adjusting-dpi-scaling/

を。だから、C#のコードに従って達成しようとしています。次のように

float x=0; 
float y=0; 
Graphics gp = Graphics.FromHwnd(IntPtr.Zero);// we can also use this.CreateGraphics() 
x = gp.DpiX; 
y = gp.DpiY; 

アム、あなたは「DPIは意識」、Windowsはあなたに嘘をつくだろうとして、あなたのアプリケーションを宣言していない場合は150%と200%

100% - 96 //both x,y values 
125% - 120 //both x,y values 
**150% - 96 //both x,y values 
200% - 96 //both x,y values** 

答えて

1

について間違っている、出力を取得それが96 DPIに設定されている(おそらくそうではありませんが)ふりをして、アプリケーション自体を拡大縮小してください。

あなたはSetProcessDPIAware、WindowsのAPIメソッドを呼び出すアプリケーションマニフェストファイルまたは

  • dpiAware -entryを追加することのいずれか

    • ことによって、これを "修正" することができます。

    の両方の例は、例えば、この中にはSO答えて、見つけることができます:

    を物事をさらに複雑にするために、Windowsの8.1ごとのモニターDPI設定を導入し、廃止予定SetProcessDPIAware。これは実際には良いことですが、it's hard to get it rightです。

  • +0

    しかし、問題はWindows XPでは動作しないことです。 XPでこの問題を解決する方法をplsで説明できますか? FYI:私は以下のMSDNリンクに行きました。それは明らかではない。 https://msdn.microsoft.com/en-us/library/dn469266(v=vs.85).aspx – Shazif

    +0

    @Shazif:「動作しません」と記述します。 – Heinzi

    関連する問題