1
0
我认为这意味着在不同的决议中,比例应该是相同的。这并不意味着应用程序将在内部调整窗口大小以适应新的分辨率。但这不是普遍现象。 另一件很重要的事要提的是,它所带来的背景。例如,对 Web应用程序 ,这可能会根据分辨率更改布局或页面大小。 电子游戏 可能会使事物 very differently 取决于屏幕分辨率和纵横比。规则的 Windows应用程序 (gui),我已经提到过了。 |
2
3
理想情况下,应用程序将使用更高的像素密度来显示更多的细节。例如,高分辨率监视器可以显示同样大小的工具栏图标,但使用额外的像素来呈现更清晰的图形。这样,您可以保持相同的基本布局,但提供更多的清晰度和细节。由于各种原因,这种解决方案在过去是不可能实现的。虽然您可以调整用gdi/gdi+、user32(为常用控件生成视觉效果)绘制的图形内容的大小,但它不支持真正的缩放。 WPF不存在这个问题,因为它呈现所有用户界面元素本身,从简单的形状到按钮等常见控件。因此,如果您在计算机显示器上创建一个1英寸宽的按钮,它可以在高分辨率显示器上保持1英寸宽。WPF将简单地以更详细和更像素的形式呈现它。 wpf的缩放基于系统dpi设置,而不是物理显示设备的dpi。它在计算尺寸时使用系统dpi设置。 WPF单元 一个WPF窗口及其内的所有元素都是使用独立于设备的单元来测量的。单个设备独立单元定义为1/96英寸。要理解这在实践中意味着什么,您需要考虑一个例子。 假设您在WPF中创建了一个小按钮,大小为96×96个单位。如果您正在使用标准Windows DPI设置(96 dpi),则每个设备独立单元对应一个实际物理像素。因为wpf使用这个计算:
本质上,wpf假设一英寸需要96像素,因为Windows通过系统dpi设置告诉它。然而,现实取决于你的显示设备。 例如,考虑一个20英寸的液晶显示器,最大分辨率为1600 x 1200像素。使用少量毕达哥拉斯,可以计算此监视器的像素密度,如下所示:
在这种情况下,像素密度可以达到100 dpi,比Windows假设的略高。因此,在该显示器上,96 x 96像素的按钮将略小于1英寸。 另一方面,考虑使用分辨率为1024 x 768的15英寸液晶显示器。在这里,像素密度下降到约85 dpi,因此96 x 96像素按钮看起来略大于1英寸。 在这两种情况下,如果您减小屏幕大小(例如,通过切换到800×600分辨率),按钮(以及每个其他屏幕元素)将按比例变大。因为系统dpi设置保持在96 dpi。换言之,Windows继续假设一英寸需要96个像素,即使在较低的分辨率下,它需要的像素要少得多。 参考文献: C语言2008中的Pro WPF:Windows .NET 3.5的演示文稿基础,第二版 |
3
2
WPF使用与设备无关的坐标,这意味着应用程序可以在不同的DPI设置下正确、均匀地缩放。 WPF的另一个非常有用的特性是viewbox,它可以用来创建一个可伸缩的应用程序。尝试以下操作。
这个简单的例子有点脱离了窗口标题栏和边框的原因,但是您已经了解了这个想法。调整此窗口的大小后,内容将均匀缩放,以便在任何分辨率下都保持相同。 |
4
1
您可以为应用程序使用WPF。您在窗体上创建的每个控件将以不同的屏幕分辨率显示。 WPF声称的主要好处之一是决议独立性。通常,这种好处用相对模糊的术语来描述,这使人们相信,这意味着无论设置监视器的分辨率如何,相同的WPF窗口都将以相同的大小显示在任何监视器上。 |
Pro-Web · 视网膜显示媒体查询在css中的应用 7 年前 |
Fisher · 运行应用程序时,Android屏幕垂直取消同步 7 年前 |
John · 如何找出特定屏幕适合的布局? 7 年前 |
Martynas · 更改应用程序中所有控件的字体大小(win窗体) 7 年前 |
J Griff · 为什么我的页脚导航在分辨率较低时变得过宽? 7 年前 |
Vaccano · 裁剪一个位图,然后具有相同的“大小”图像 9 年前 |
Noitidart · 在Win81+非dpi感知过程中,计算比例因子 9 年前 |
Entity1037 · Opengl全屏分辨率错误 9 年前 |