我需要找出是否用户的屏幕设置为正常的96 dpi(小尺寸),大120 dpi的字体,或其他东西。 如何在VB.NET(首选)或C#中做到这一点?
Windows操作系统和内存pipe理 – 应用程序最小化时会发生什么?
.NET跟踪日志查看器
如何使用visual basic.net express版本安装Windows服务?
DropDown列表与checkBox
如何在C#中重新加载USB磁盘?
最好的方法就是根据用户当前的DPI设置让表单自动调整大小。 要做到这一点,只需将AutoScaleMode属性设置为AutoScaleMode.Dpi并启用AutoSize属性。 你可以通过设计器的属性窗口或代码来完成这个工作:
Public Sub New() InitializeComponent() Me.AutoScaleMode = AutoScaleMode.Dpi Me.AutoSize = True End Sub
或者,如果您在绘图时需要了解此信息(例如在Paint事件处理程序方法中),则可以从Graphics类实例的DpiX和DpiY属性中提取信息。
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
最后,如果您需要即时确定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
看看DpiX和DpiY的属性。 例如:
using (Graphics gfx = form.CreateGraphics()) { userDPI = (int)gfx.DpiX; }
在VB中:
Using gfx As Graphics = form.CreateGraphics() userDPI = CInt(gfx.DpiX) End Using
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。