win7 WPF让界面大小和字体不随系统DPI变化而变化 您所在的位置:网站首页 显示器dpi设置 win7 WPF让界面大小和字体不随系统DPI变化而变化

win7 WPF让界面大小和字体不随系统DPI变化而变化

2023-06-09 19:43| 来源: 网络整理| 查看: 265

Hi zq1564171310,

首先你需要知道WPF下不管硬件是什么样的DPI,也不管操作系统是什么样的DPI,统统按照96DPI来计算,也就是说,WPF里面的一个像素就等于1/96英寸。因此当你的应用在不同DPI下界面显示出现变化时,可以参考一下方法:

1.96DPI下,显示器分辨率为1024*768,应用程序的界面显示正常,当到了125DPI的时候,试着给window设置MinHeight 和MinWidth ,让这两个值等于Height和Width,设置了Minheight后,就相当于强制显示,必须至少显示这个尺寸。

2.高DPI下,当前应用程序A与其他的应用程序B交互,B告诉A:在(600,500)的位置显示,也就是命令A.Left=600,A.Top=500 ,B的这个尺寸是按照高dpi(例如125)计算出来的,是已经被放大过的。A是wpf程序,只认识96DPI,所以,A不能老老实实的按照这个点显示,而是需要转换一下:A.Left=600/(125/96),WPF重绘后, windows再放大一下,就吻合了B的要求。

3.高DPI下,wpf应用程序的宽和高的设定,类似于2中left和top的设定,需要做一下转换。如果说需求是宽高随着dpi自动放大,那就不用这样子处理了。

4.字体的问题,win7 里面DPI的方法,是为了字体更大一些,更容易看清楚来设计的。如果DPI很高,又要处理多国语言,有些语言翻译后很长很长,字体有大,尺寸有限,这个时候,可能需要酌情转换字体大小了。

有关字体转换的问题,你可以参考这个帖子:http://stackoverflow.com/questions/4089237/how-do-i-force-a-winform-c-sharp-application-to-ignore-when-a-user-choose-125-o

Best Regards,

Xavier Eoro

We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place. Click HERE to participate the survey.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有