WPF最大化窗口大于屏幕

XoM*_*MEX 11 c# wpf .net-4.5

当创建一个WPF窗口AllowsTransparency="True" WindowStyle="None"并通过this.WindowState = WindowState.Maximized;Window 最大化它比我的屏幕更大.

AllowTransparency="False"我在我的窗口周围设置边框时,窗口不会比我的屏幕大.
在我的情况下,我有一个1920x1080的屏幕,窗口变为1934x1094.
在我的1280x1024屏幕上,窗口将变为1294x1038.
无论是否启用AllowTransparency,Window都将变得如此大,但是如果禁用它,它将正常工作.

在最大化doesen't工作之前设置AllowTransparency并抛出InvalidOperationException.

如何获得没有Windows风格边框但尚未正确最大化的WPF窗口?

Ste*_*eve 9

晚了几年,但只需增加this.borderthicknessSizeChanged 事件的大小,如下所示:

<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);
        }
    }
Run Code Online (Sandbox Code Playgroud)


Chi*_*nki -1

设置你的窗口的这个属性。

 MinHeight="100"
  MinWidth="100"
  Height="auto"
  Width="auto" 
Run Code Online (Sandbox Code Playgroud)

希望这会起作用