当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《C#缩放UserControl内容以匹配用户Dpi/字体大小》经验,为你挑选了1个好方法。

如何让OwnerDrawn UserControl尊重用户dpi(96/120/xxx)和/或font-size(正常,大,超大)?

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

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

除了依赖WPF之外,在.NET中没有办法做到这一点吗?



1> Allon Guraln..:

您需要将UserControl 的AutoScaleMode属性设置为AutoScaleMode.Dpi,而不是将AutoScale属性设置为true.如果这样做,它会将AutoScaleMode重置为None.AutoScale属性已过时,仅用于向后兼容(请参阅本MSDN文章中的重要说明).

此外,在Windows Vista/7中,除非明确指定应用程序支持DPI,否则Windows将模拟默认DPI环境,以便应用程序使用96 DPI进行渲染,然后将生成的位图缩放到适当的大小.为了避免这种情况,你可以改变你的应用程序清单,以通知Windows您实际上DPI知道-看到使用清单申报新闻部认识部分这篇文章.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有