加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#缩放UserControl内容以匹配用户Dpi /字体大小

发布时间:2020-12-15 04:27:22 所属栏目:百科 来源:网络整理
导读:如何让我的OwnerDrawn UserControl尊重用户dpi(96/120 / xxx)和/或font-size(普通,大,超大)? 有些人建议在Graphics对象上使用DpiX和DpiY属性,但是在我的控制中似乎没有任何东西(即它们总是设置为96,无论选择哪种字体大小或dpi). 在StackOverflow上还有一个
如何让我的OwnerDrawn UserControl尊重用户dpi(96/120 / xxx)和/或font-size(普通,大,超大)?

有些人建议在Graphics对象上使用DpiX和DpiY属性,但是在我的控制中似乎没有任何东西(即它们总是设置为96,无论选择哪种字体大小或dpi).

在StackOverflow上还有一个类似的问题,它建议使用AutoScale属性,但建议的解决方案也不会做任何事情.

在.NET中没有办法,除了依靠WPF吗?

解决方法

您需要将UserControl的AutoScaleMode属性设置为AutoScaleMode.Dpi,并且不将AutoScale属性设置为true.如果这样做,它会将AutoScaleMode重新设置为None. AutoScale属性已过时,只能向后兼容(请参阅此 MSDN article中的重要说明).

此外,在Windows Vista / 7中,除非您明确指定您的应用程序是DPI感知的,否则Windows将模拟默认DPI环境,以便您的应用程序以96 DPI呈现,然后将生成的位图缩放到适当的大小.为了避免这种情况,您可以更改应用程序清单以通知Windows事实上DPI已知 – 请参阅使用清单在this article中声明DPI感知部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读