1
在我的C#winforms应用程序中,我使用Graphics对象来获取当前的DPI值,以使我的代码可以缩放某些组件。这工作得很好,除非我一旦调用CreateGraphics(),我的winforms应用程序的外观和感觉就会改变。风格从熟悉的“圆形”按钮到更古老的“锐边”按钮。为什么调用CreateGraphics()会改变我的表单的外观?
为什么会发生这种情况,我该怎么做才能防止它发生?
我的代码如下所示:
Graphics g = this.CreateGraphics();
try
{
if (g.DpiX == 120.0f)
{
// scale the components appropriately
}
}
finally
{
g.Dispose();
}
其实我可以通过调用的createGraphics,然后立即它处置重现该问题。
任何帮助或洞察力非常感谢!
另一个问题是:是否有无需要创建一个Graphics对象来获取DPI设置?