调整 WPF 应用程序的大小,直到只剩下窗口栏

问题描述

这是一种修改窗口高度直到只剩下窗口栏的方法吗?现在我使用将窗口的高度设置为 0 仍然保留窗口栏上方的一些内容(白色和灰色区域),我想完全删除它并只留下窗口栏:

我使用 MVVM,因此需要绑定:

XAML:

Width="{Binding MainWindowWidthSize,Mode=TwoWay}"
Height="{Binding MainWindowHeightSize,Mode=TwoWay}"

C#

 public void TriggerFloatingMode(object obj)
            {
                if (!_isFloatingModeEnabled)
                {
                    MainWindowWidthSize = 500;
                    MainWindowHeightSize = 0;
                    _isFloatingModeEnabled = true;
                }
                else
                {
                    MainWindowWidthSize = 1000;
                    MainWindowHeightSize = 560;
                    _isFloatingModeEnabled = false;
    
                }
    
            }

解决方法

将此代码WindowStyle="None"添加到Window标签中,并在Window标签底部输入以下代码

<Window.Resources>
   <Style TargetType="{x:Type local:MainWindow}">
       <Setter Property="WindowChrome.WindowChrome">
           <Setter.Value>
             <WindowChrome CornerRadius="0" GlassFrameThickness="0" ResizeBorderThickness="2" CaptionHeight="0"></WindowChrome>
           </Setter.Value>
      </Setter>
  </Style>
</Window.Resources>

在上面的代码中,将 TargetType="{x:Type local:MainWindow}" 更改为您的窗口名称 local: your window name

,

一个简单的代码解决方案可能是

<Window x:Class="YourWindow.MainWindow"    
    SizeToContent="WidthAndHeight">
<Grid Height="{Binding MainWindowHeightSize  }" Width="{Binding MainWindowWidthSize }">
</Grid>
</Window>