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