窗口无法在手动尺寸调整之前最大化

时间:2016-06-15 15:28:36

标签: c# wpf xaml

我有一个应用程序,它启动了一个我使用WindowStyle="None"自定义的主窗口。因此,我需要重新实现标题栏中的最大化/最小化按钮。

然而,在这样做之后,我发现窗口不会最大化以填满整个屏幕。相反,它只在左上角“停靠”后填充一个等于当前大小的空间。然后我发现如果我以任何方式调整尺寸,我可以让窗口正确地最大化(事实上,仅仅点击窗口的边缘就可以了)。

有没有人知道如何在不对其尺寸进行手动调整的情况下使窗口正确最大化?

这是我的主窗口的xaml:

<Window x:Class="cvma.MainWindow" Name="MainWindowName"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:cvma" UseLayoutRounding="True" 
        mc:Ignorable="d" TextOptions.TextFormattingMode="Display" SizeToContent="WidthAndHeight" 
        Title="Application" MinHeight="700" MinWidth="1200" WindowStyle="None" >

我的最大化按钮就是这样:

            if (this.WindowState == WindowState.Maximized)
            {
                this.WindowState = WindowState.Normal;
            }
            else
            {
                this.WindowState = WindowState.Maximized;
            }

1 个答案:

答案 0 :(得分:1)

删除SizeToContent="WidthAndHeight"

如果您需要保留上述属性,因为当窗口未最大化时您才真正需要它:

if (this.WindowState == WindowState.Maximized)
{
    this.SizeToContent = SizeToContent.WidthAndHeight;
    this.WindowState = WindowState.Normal;
}
else
{
    this.SizeToContent = SizeToContent.Manual;
    this.WindowState = WindowState.Maximized;
}