C# 针对自定义DPI设置优化支持DPI的应用程序
我正在编写一个支持DPI的应用程序。它目前兼容100%、125%、150%和200%的缩放。但是,如果我使用130%的自定义设置,则代码为200%,而不是125%。是否可以使用所有自定义DPI设置优化我的应用程序,而不使用100个ifs 我目前正在使用以下代码:C# 针对自定义DPI设置优化支持DPI的应用程序,c#,windows,graphics,scaling,dpi,C#,Windows,Graphics,Scaling,Dpi,我正在编写一个支持DPI的应用程序。它目前兼容100%、125%、150%和200%的缩放。但是,如果我使用130%的自定义设置,则代码为200%,而不是125%。是否可以使用所有自定义DPI设置优化我的应用程序,而不使用100个ifs 我目前正在使用以下代码: Graphics g = this.CreateGraphics(); if (g.DpiX < 120) { t.ItemSize = new Size(245, 22); } else if (g.DpiX == 12
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();
如果(g.DpiX<120)
{
t、 ItemSize=新尺寸(245,22);
}
否则如果(g.DpiX==120)
{
t、 ItemSize=新尺寸(329,28);
}
否则如果(g.DpiX==144)
{
如果(g.DpiX>195)
{
t、 ItemSize=新尺寸(494,44);
}
其他的
{
t、 ItemSize=新尺寸(368,33);
}
}
其他的
{
t、 ItemSize=新尺寸(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);
}
Graphics g=this.CreateGraphics();
如果(g.DpiX<120)
{
t、 ItemSize=新尺寸(245,22);
}
否则如果(g.DpiX>=120&&g.DpiX<144)
{
t、 ItemSize=新尺寸(329,28);
}
否则如果(g.DpiX>=144和&g.DpiX<196)
{
如果(g.DpiX>=196)
{
t、 ItemSize=新尺寸(494,44);
}
其他的
{
t、 ItemSize=新尺寸(368,33);
}
}
其他的
{
t、 ItemSize=新尺寸(494,44);
}
结果是200%出于某种原因使用了150%的代码?我错过了什么吗?如果(g.DpiX>=120&&g.DpiX<144)等,请使用else。实际运行到非标准dpi设置将是非常罕见的。谢谢,但由于某些原因,200%不再被接受。请参阅编辑。这不会赢得任何奖项,但请尽量不要挂断几个if()语句。使用调试器。它现在似乎可以工作了。