我有一个WPF Windows应用程序。 我需要改变标题栏的背景色。 我怎样才能做到这一点?
Answer 1:
在WPF标题栏是非客户区,这无法通过WPF窗口类进行修改的一部分。 你需要操纵的Win32句柄(如果我没记错的话)。
这篇文章可能对你有所帮助: 自定义窗口镶边的WPF 。
Answer 2:
下面是关于如何实现这样一个例子:
<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>
手柄的点击事件代码隐藏。
对于的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;
}
我希望这有帮助。
-Susnt
Answer 3:
您还可以创建一个无国界的窗口,使边框和标题栏自己
Answer 4:
请查看以下示例WPF自定义窗口的XAML外观
此示例显示了如何完全自定义样式/外观的窗口,包括非客户端领域:标题栏,边框,最大值,最小值和关闭按钮,同时仍然提供所有预期的功能。
文章来源: Changing WPF title bar background color