宽度和高度与屏幕像素不匹配

Dot*_*mer 4 c# wpf winforms

过去 10 个月我一直在做 Winforms。我们公司正在考虑切换到 WPF。我在设置 WPF 的高度和宽度以匹配屏幕上的像素时遇到问题。我希望高度为 1080,宽度为 1920,因为这是我的屏幕分辨率。在 Winforms 中它工作得很好,因为它基于屏幕分辨率,那么 WPF 不也是这样吗?

<Title="Application" 
   Height="1080" 
   Width="1920" 
   WindowStyle="ThreeDBorderWindow" 
   WindowStartupLocation="CenterScreen" 
   WindowState="Maximized" 
   HorizontalAlignment="Center" 
   VerticalAlignment="Center" 
   SizeToContent="Height">
Run Code Online (Sandbox Code Playgroud)

当我将停靠面板放置在设计师身上四分之三的位置时。当我运行应用程序时,它位于应用程序的底部,但如果我将它放在底部,它就不会显示,我认为它位于屏幕之外。我如何从 winforms 获得相同的行为?当我将它设置在应用程序的底部时,当我运行它时它位于底部。

F.K*_*nig 5

在 WPF 中,您\xe2\x80\x99 以设备无关单位 (DIP) 指定大小。1 DIP = 1/96 英寸。

\n\n

要从 DIP 转换为像素(反之亦然),您需要知道屏幕 DPI 设置(例如 96、120)。

\n\n

像素 = (DIP) * (DPI / 96)

\n\n

DIP = 像素 / (DPI/96.0)

\n

  • 这是有道理的,因为具有高 DPI 的高分辨率显示器很容易获得。您的应用程序将根据个人偏好(相对于本机分辨率的 DPI 设置)在不同设备上具有相同的“外观”。 (3认同)