WPFwindow 去掉X 缩小放大等按钮
时间: 2024-12-11 09:26:17 浏览: 12
在Windows Presentation Foundation (WPF) 中,如果想要移除默认窗口上的最小化、最大化和关闭按钮,你可以通过自定义`WindowChrome`或直接操作窗口样式来实现。这里提供一种简单的方法:
1. **自定义WindowChrome**:
首先,你需要创建一个自定义的`WindowChrome`,并设置其`WindowChrome`属性,例如:
```xml
<Window x:Class="YourNamespace.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlDarkBrushKey}" Color="#FF4D4D4D" />
<ControlTemplate x:Key="NoTitleBarChromeTemplate">
<Border Background="{StaticResource {x:Static SystemColors.ControlBrush}}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel Grid.Row="0" Margin="2">
<!-- 这里可以添加你的标题文本,如果需要 -->
<TextBlock Text="Custom Window" FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</DockPanel>
<ContentPresenter Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Grid>
</Border>
</ControlTemplate>
</Window.Resources>
<Window.WindowStyle>
<Setter Property="WindowChrome">
<Setter.Value>
<WindowChrome UseShellResource="False" GlassFrameEnabled="False" Template="{StaticResource NoTitleBarChromeTemplate}"/>
</Setter.Value>
</Setter>
</Window.WindowStyle>
<Grid>
<!-- Your window content here -->
</Grid>
</Window>
```
2. **直接操作窗口样式**:
如果你想保持默认的模板,但隐藏这些按钮,可以使用`UIElement.Visibility`属性将其设为`Collapsed`:
```xml
<Window ...>
<Window.Style>
<Style TargetType="Window">
<Setter Property="WindowChrome.WindowChrome">
<Setter.Value>
<WindowChrome UseShellResource="True" />
</Setter.Value>
</Setter>
<Setter Property="Window.SizeToContent" Value="WidthAndHeight" />
<Style.Triggers>
<Trigger Property="IsMaximized" Value="True">
<Setter Property="Window.RestoreBounds">
<Setter.Value>
<Rectangle Width="200" Height="150" Fill="Transparent" />
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsMinimized" Value="True">
<Setter Property="Window.IconicState" Value="NormalSize" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>
<!-- 省略了其他的窗口内容 -->
</Window>
```
在这两个例子中,`IsMaximized` 和 `IsMinimized` 触发器分别控制最大化和最小化后的窗口外观。
阅读全文