Cod*_*ray 13
在最好的办法就是让形式自动调整自身的大小,根据用户当前的DPI设置.要做到这一点,只需将AutoScaleMode属性设置为AutoScaleMode.Dpi并启用该AutoSize属性即可.您可以从设计器中的"属性"窗口或通过代码执行此操作:
Public Sub New()
InitializeComponent()
Me.AutoScaleMode = AutoScaleMode.Dpi
Me.AutoSize = True
End Sub
Run Code Online (Sandbox Code Playgroud)
或者,如果您需要了解这些信息而绘制(如在Paint事件处理方法),您可以从中提取的信息DpiX和DpiY对性能的Graphics类的实例.
Private Sub myControl_Paint(ByVal sender As Object, ByVal e As PaintEventArgs)
Dim dpiX As Single = e.Graphics.DpiX
Dim dpiY As Single = e.Graphics.DpiY
' Do your drawing here
' ...
End Sub
Run Code Online (Sandbox Code Playgroud)
最后,如果您需要即时确定DPI级别,则必须Graphics为表单创建类的临时实例,并检查DpiX和DpiY属性,如上所示.表单类的CreateGraphics方法使这很容易做到; 只需确保将此对象的创建包装在Using语句中以避免内存泄漏.示例代码:
Dim dpiX As Single
Dim dpiY As Single
Using g As Graphics = myForm.CreateGraphics()
dpiX = g.DpiX
dpiY = g.DpiY
End Using
Run Code Online (Sandbox Code Playgroud)