我遇到过一种情况,虽然MinWidth和MinHeight属性在Windows Resolution(在Windows 7上)具有相同的值,但我的应用程序仍然没有完全显示在屏幕上(部分顶部和部分区域在权利被削减)。例如:
MinWidth="1280" MinHeight="960"
Windows分辨率设置为1280x960。仍未完全显示应用程序。但是,如果我将分辨率DPI更改为更小(96dpi),则应用程序将正确显示。如何在WPF应用程序中将AutoScaleMode设置为dpi。
即使在@Abe Heidebrecht回答之后,我也看不到结果的改善。例如,当我最大化应用程序时,这是我的用户界面的样子:(请注意我有一个秒监视器,黑色区域在第二个监视器上)
答案 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}}"