【发布时间】:2012-05-22 18:33:50
【问题描述】:
我有一个我在 Windows 7 下设计的应用程序。屏幕设置为 96 DPI。当部署到同样设置为 96 dpi 的 WinXp 计算机时,屏幕看起来会有所不同。左侧和底部还有额外的空间。下面是两个屏幕截图。我想知道是否需要将显示包装在一些 UI 工具中并更改一些属性以使其看起来一致。我尝试添加 UseLayoutRounding="true" 但它似乎没有做太多。
它的外观 (Win7)
XP 下的样子
【问题讨论】:
-
字体好像不一样。您可以将其更改为使用两个目标系统上默认可用的字体,或使用可在两个目标系统上安装的字体,或设计两个界面,每种字体一个,并在运行时检测系统。
-
Windows XP 没有 Segoe UI 字体。它使用 Tahoma 字体。但是,WPF 一般不是像 WinForms 那样“绝对”的位置,它都是相对布局。我很惊讶你遇到这个问题。
-
我想这提出了一个很好的问题。您是否对那些延迟标签和文本框/微调器使用绝对大小/定位?
-
我使用默认字体,以便解释字体的不同外观以及可能的间距。我想保持最小窗口的高度和宽度,以便用户不会使窗口对于内容来说太小。如果字体差异减少了足够的像素,我猜 XP 中的窗口会“缩小”,留下额外的空间并导致边框。 Delay/Width UserControl 是 GroupBox BUT 内的 StackPanel 我确实通过样式在标签上设置了绝对宽度。我想我会考虑换成 Tahoma 或者看看我是否可以在 XP 上安装 Segoe。
-
@Tim 提升您对某个答案的回复,真的所有三个回复都非常有帮助,不同的字体会导致轻微的布局差异,但正是分散的固定尺寸阻止了 WPF 完全控制。