我有一个WPF Windows应用程序。我需要更改标题栏的背景颜色。我怎么能这样做?
答案 0 :(得分:21)
以下是如何实现这一目标的示例:
<Grid DockPanel.Dock="Right"
HorizontalAlignment="Right">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Right"
VerticalAlignment="Center">
<Button x:Name="MinimizeButton"
KeyboardNavigation.IsTabStop="False"
Click="MinimizeWindow"
Style="{StaticResource MinimizeButton}"
Template="{StaticResource MinimizeButtonControlTemplate}" />
<Button x:Name="MaximizeButton"
KeyboardNavigation.IsTabStop="False"
Click="MaximizeClick"
Style="{DynamicResource MaximizeButton}"
Template="{DynamicResource MaximizeButtonControlTemplate}" />
<Button x:Name="CloseButton"
KeyboardNavigation.IsTabStop="False"
Command="{Binding ApplicationCommands.Close}"
Style="{DynamicResource CloseButton}"
Template="{DynamicResource CloseButtonControlTemplate}"/>
</StackPanel>
</Grid>
</DockPanel>
处理代码隐藏中的Click事件。
对于MouseDown -
App.Current.MainWindow.DragMove();
最小化按钮 -
App.Current.MainWindow.WindowState = WindowState.Minimized;
适用于DoubleClick和MaximizeClick
if (App.Current.MainWindow.WindowState == WindowState.Maximized)
{
App.Current.MainWindow.WindowState = WindowState.Normal;
}
else if (App.Current.MainWindow.WindowState == WindowState.Normal)
{
App.Current.MainWindow.WindowState = WindowState.Maximized;
}
我希望这会有所帮助。
-Sushant
答案 1 :(得分:19)
在WPF中,标题栏是非客户区域的一部分,无法通过WPF窗口类进行修改。你需要操作Win32句柄(如果我没记错的话) 本文对您有所帮助:Custom Window Chrome in WPF。
答案 2 :(得分:11)
您还可以创建无边框窗口,并自己制作边框和标题栏
答案 3 :(得分:4)
检查以下示例WPF customizing the appearance of a window in XAML
此示例显示如何完全自定义窗口的样式/外观,包括非客户区域:标题栏,边框,最大,最小和关闭按钮,同时仍提供所有预期功能。