DPI 対応のアプリケーションを作成しています。現在、100%、125%、150%、および 200% のスケーリングと互換性があります。ただし、たとえば 130% のカスタム設定を使用すると、125% ではなく 200% のコードが使用されます。100 の if を使用せずに、すべてのカスタム DPI 設定でアプリケーションを最適化することは可能ですか?
現在、次のコードを使用しています。
Graphics g = this.CreateGraphics();
if (g.DpiX < 120)
{
t.ItemSize = new Size(245, 22);
}
else if (g.DpiX == 120)
{
t.ItemSize = new Size(329, 28);
}
else if (g.DpiX == 144)
{
if (g.DpiX > 195)
{
t.ItemSize = new Size(494, 44);
}
else
{
t.ItemSize = new Size(368, 33);
}
}
else
{
t.ItemSize = new Size(494, 44);
}
編集:
今このコードを使用する:
Graphics g = this.CreateGraphics();
if (g.DpiX < 120)
{
t.ItemSize = new Size(245, 22);
}
else if (g.DpiX >= 120 && g.DpiX < 144)
{
t.ItemSize = new Size(329, 28);
}
else if (g.DpiX >= 144 && g.DpiX < 196)
{
if (g.DpiX >= 196)
{
t.ItemSize = new Size(494, 44);
}
else
{
t.ItemSize = new Size(368, 33);
}
}
else
{
t.ItemSize = new Size(494, 44);
}
その結果、なぜか200%が150%のコードを使っている?私は何か見落としてますか?