首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改WPF标题栏背景颜色

更改WPF标题栏背景颜色
EN

Stack Overflow用户
提问于 2009-08-15 22:14:19
回答 4查看 116.7K关注 0票数 52

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-16 00:03:21

在WPF中,标题栏是非工作区的一部分,不能通过WPF窗口类进行修改。您需要操作Win32句柄(如果我没记错的话)。

这篇文章可能会对你有所帮助:Custom Window Chrome

票数 25
EN

Stack Overflow用户

发布于 2011-02-16 17:18:13

这里有一个关于如何实现这一点的示例:

代码语言:javascript
复制
  <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 -

代码语言:javascript
复制
App.Current.MainWindow.DragMove();

对于最小化按钮-

代码语言:javascript
复制
App.Current.MainWindow.WindowState = WindowState.Minimized;

对于DoubleClick和MaximizeClick

代码语言:javascript
复制
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;
}
票数 27
EN

Stack Overflow用户

发布于 2009-08-16 00:24:22

您还可以创建一个无边框窗口,并自己制作边框和标题栏

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1283006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档