微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检测用户的字体DPI是设置为小,大还是其他?

我需要找出是否用户的屏幕设置为正常的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] 举报,一经查实,本站将立刻删除。

相关推荐