为什么AutoScaleMode属性不包含在WPF中?

时间:2013-08-06 13:46:08

标签: wpf autoscaling

我遇到过一种情况,虽然MinWidth和MinHeight属性在Windows Resolution(在Windows 7上)具有相同的值,但我的应用程序仍然没有完全显示在屏幕上(部分顶部和部分区域在权利被削减)。例如:

MinWidth="1280" MinHeight="960"

Windows分辨率设置为1280x960。仍未完全显示应用程序。但是,如果我将分辨率DPI更改为更小(96dpi),则应用程序将正确显示。如何在WPF应用程序中将AutoScaleMode设置为dpi。

即使在@Abe Heidebrecht回答之后,我也看不到结果的改善。例如,当我最大化应用程序时,这是我的用户界面的样子:(请注意我有一个秒监视器,黑色区域在第二个监视器上)

enter image description here

1 个答案:

答案 0 :(得分:4)

WPF使用与设备无关的像素。在WPF中,1像素应该是1/96英寸(因为当开发WPF时96DPI是常见的)。因此,如果您的显示器具有更高的DPI,WPF实际上会报告您的像素数超过1280x960。 Here is a blog post that I thought explained things well

我会使用SystemParameters课来获得你所追求的目标:

Width="{DynamicResource {x:Static SystemParameters.FullPrimaryScreenWidthKey}}"
Height="{DynamicResource {x:Static SystemParameters.FullPrimaryScreenHeightKey}}"