WPF给出错误的窗口大小

时间:2019-05-31 10:38:34

标签: c# wpf

我的应用程序中的Window_SizeChanged事件处理程序在SizeChangedEventArgs.NewSize中报告了错误的大小。另外,将WindowStyle更改为“ None”(无边框)会减小尺寸,而不是增大尺寸。

我能够通过创建默认的WPF应用程序并将“ SizeChanged”处理程序添加到“窗口”来重现这一点。

尤其是我的显示器分辨率为1920x1080。

在100%= 96 DPI的情况下,当最大化窗口时,我希望使用此尺寸,但对于样式“无”,则为1934x1094,否则为1936x1056。

在125%= 120 DPI的情况下,我希望分辨率的大小为4/5,即1536x864,但对于“无”样式,则为1548.4x876.8,否则为1550.4x840.0。

我的尺码计算出了什么问题?当窗口带有边框时,为什么会提供更大的尺寸?结果,我无法在应用程序中正确安装和缩放组件。

1 个答案:

答案 0 :(得分:0)

这是对我有用的,灵感来自this question的答案。我添加了一个顶层控件,将其拉伸以填充窗口。在MainWindow.xaml

<Grid x:Name="MainGrid"
 HorizontalAlignment="Stretch"
 VerticalAlignment="Stretch"
 SizeChanged="MainGrid_SizeChanged">
// etc..        
</Grid>

我想要窗口的工作区的大小,该大小在MainGrid_SizeChanged的{​​{1}}中的SizeChangedHander中正确给出

MainWindow.xaml.cs