0

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%のコードを使っている?私は何か見落としてますか?

4

0 に答える 0