分辨率独立性如何在WPF中起作用?

Har*_*rsh 7 .net c# vb.net wpf xaml

这更多是出于好奇.我正在研究WPF应用程序是独立于分辨率的.这是否意味着我们不必担心显示器分辨率的大小?因为作为Windows应用程序开发人员,我遇到了一些挑战,使应用程序兼容不同的分辨率.

我的问题是WPF如何管理独立于分辨率的属性?我们是否需要提供出现控制的比率?如果用作背景(如果它在高分辨率下扭曲或保持其清晰度),图像的质量将如何影响?

请帮忙.这可能是项目的决定性因素.

Chr*_*uer 7

据我所知,WPF使用Buttons的矢量图形而不是像旧版WinForms那样的Bitmaps.因此,WPF可以轻松调整大小并适应不同的屏幕分辨率.我对背景图像等没有直接经验,但如果它们是基于像素的,我会提供比96 DPI所需的更高分辨率,可能是两倍高?这应该保证,他们在更高的分辨率下看起来并不差.

实际应用说明:WPF应用程序总是可读的,并且在我迄今为止尝试的所有显示器上看起来都很好.但是如果使用更小的分辨率来显示为更大分辨率开发的程序,则可能会遇到固定对象的问题.例如,将文本框定义为特定的最小尺寸,而不是占用太多可用的屏幕.所以我觉得最好定义尽可能少的约束,然后在运送产品之前测试其他显示器上的应用程序,因为它总是可读的,但你可能会发现一些可用的问题.


pet*_*erG 5

WPF和解决方案独立性的关键在于它使用与设备无关的单元并使用它来正常使用系统dpi设置('大字体'等); 因此,例如,如果您正在将系统设置为默认的96 dpi,并绘制96个单位宽的文本框,WPF知道这是一个逻辑英寸.如果您然后将分辨率更改为144 dpi,WPF将使用144个物理像素绘制文本框.所有的GUI元素都像这样完美地扩展.如果您使用Winforms GUI尝试相同的操作,您将看到它无法正确扩展 - 您最终会在小文本框中使用大字体等

ETA解决这个问题的另一种方法是澄清分辨率的含义 - 我猜1024 x 768实际上是'屏幕大小,以像素为单位',96dpi更准确地说是实际分辨率,而且它改变了这一点,WPF可以正确处理其他平台别; 如果您只需将800 x 600更改为1024 x 768,Winforms等和WPF都将正确显示.