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

标签 c# wpf xaml

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

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

有谁知道如何在不手动调整窗口尺寸的情况下正确最大化我的窗口?

这是我主窗口的 xaml:

<Window x:Class="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:c" 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;
            }

最佳答案

移除 SizeToContent="WidthAndHeight"

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

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

关于c# - 在手动调整尺寸之前,窗口无法最大化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37839693/

相关文章:

wpf - 仅在设计时使用 MultiBindingConverter 获取 XamlObjectWriterException (Visual Studio 2015)

c# - 类型引用找不到名为的公共(public)类型

c# - WPF DataGrid 突出显示整行

c# - 检查值是否存在或为空

c# - 从 SQLite 数据库填充 DataGridView (C#)

c# - 有没有办法提高我的简单文本过滤器的性能?

c# - WPF 树数据模板取决于项目类型

wpf - INotifyPropertyChanged 不更新值转换器

c# - 在 C# 中使用数组填充 Xaml

c# - 静态方法困惑