更改WPF标题栏背景颜色

时间:2009-08-15 22:14:19

标签: wpf titlebar

我有一个WPF Windows应用程序。我需要更改标题栏的背景颜色。我怎么能这样做?

4 个答案:

答案 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

此示例显示如何完全自定义窗口的样式/外观,包括非客户区域:标题栏,边框,最大,最小和关闭按钮,同时仍提供所有预期功能。