我有一个WPF Windows应用程序。我需要更改标题栏的背景颜色。我该怎么做呢?
发布于 2009-08-16 00:03:21
在WPF中,标题栏是非工作区的一部分,不能通过WPF窗口类进行修改。您需要操作Win32句柄(如果我没记错的话)。
这篇文章可能会对你有所帮助:Custom Window Chrome
发布于 2011-02-16 17:18:13
这里有一个关于如何实现这一点的示例:
<DockPanel HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
LastChildFill="True">
<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;
}
发布于 2009-08-16 00:24:22
您还可以创建一个无边框窗口,并自己制作边框和标题栏
https://stackoverflow.com/questions/1283006
复制相似问题