独立于分辨率或显示器尺寸的WPF应用程序

4

我该如何开发分辨率独立和显示器尺寸独立的WPF应用程序? 在这里,显示器尺寸独立意味着假设我在一个15英寸的显示器上开发了一个WPF应用程序,当我在一个17英寸的显示器上查看该应用程序时,UI通常会不同,那么我该如何在WPF中解决这个问题? 请详细指导。 谢谢。


为什么在较大的显示器上,用户界面看起来不同?自从一开始,视觉元素就能根据用户屏幕的分辨率进行缩放。你并不需要任何花哨的WPF功能来实现这一点。你具体注意到了什么变化? - Cody Gray
分辨率独立已经得到解决。"与显示器尺寸无关"将会非常困难。你的程序如何知道运行在1024x768的连接显示器是15英寸还是24英寸?甚至操作系统本身可能都不知道。 - Øyvind Bråthen
3个回答

10

5
这是一个相当复杂的问题。基本上,WPF 的创建是为了允许创建分辨率无关的应用程序。例如,所有值(宽度、高度等)都以“设备独立像素”为单位,其中每个点是“1/96”英寸(对于 DPI 设置为 96 的监视器,每个点匹配一个像素)。
但是,这并不能完全让您创建独立于设备的应用程序。在这里,您需要记住使用适当的布局机制,如使用 DockPanel、StackPanel 或 Grid,而不是 Canvas。您的控件应设置为填充所有可用空间(HorizontalAlignment 设置为 Stretch),只有一些应显式设置 Width 或 Height。
这是一个相当大的主题,能让您完成目标的良好实践分散在网络和书籍中,可能没有人能够在此处提供简短版本的答案。

1

如果系统显示的DPI设置正确,WPF应该适当缩放界面。


@Thomas:现在我想起来了,我不确定你到底需要什么。你是希望你的按钮,比如说,占据屏幕宽度的10%,始终占据显示器宽度的10%吗?还是希望它们始终保持相同的物理宽度,比如1英寸? - Lazarus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接