【问题标题】:WPF App scales differently on XP vs Win7 both at 96 DPIWPF 应用程序在 XP 和 Win7 上的缩放比例都不同,均为 96 DPI
【发布时间】: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 完全控制。

标签: c# wpf layout scaling


【解决方案1】:

看起来您在对话框中使用了固定大小,而不是让 WPF 布局引擎使用网格和诸如此类的东西来处理它。例如,查看延迟标签,我猜它们是固定大小的,当在 XP 上使用不同的字体时,标签不会像在普通 WPF 应用程序中那样增长。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 2021-02-14
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多