当使用 AllowsTransparency="True"WindowStyle="None"
创建 WPF 窗口并通过 this.WindowState = WindowState.Maximized;
最大化它时,窗口变得比我的屏幕。
设置 AllowTransparency="False"
时,我的窗口周围有一个边框,但窗口不会比我的屏幕大。
在我的例子中,我有一个 1920x1080 的屏幕,窗口变成了 1934x1094。
在我的 1280x1024 屏幕上,窗口将变为 1294x1038。
无论是否启用 AllowTransparency,Window 都将变得如此大,但在禁用 AllowTransparency 后仍可正常工作。
在最大化之前设置 AllowTransparency 不起作用并抛出 InvalidOperationException。
如何获得没有 Windows 样式边框但尚未正确最大化的 WPF 窗口?
最佳答案
聚会晚了几年,但只需为 SizeChanged 事件增加 this.borderthickness
,如下所示:
<Window x:Class="MyApp.MainWindow"
ResizeMode="CanResize"
WindowStyle="SingleBorderWindow"
SizeChanged="Window_SizeChanged">
....
Code
....
</Window>
public void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
if (this.WindowState == WindowState.Maximized)
{
this.BorderThickness = new System.Windows.Thickness(8);
}
else
{
this.BorderThickness = new System.Windows.Thickness(0);
}
}
关于c# - WPF 最大化窗口大于屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29391063/