为了账号安全,请及时绑定邮箱和手机立即绑定

如何更改标题栏按钮WPF C#

如何更改标题栏按钮WPF C#

C#
MM们 2021-04-02 17:14:13
我想使用窗口标题栏中的关闭,最小化和最大化按钮进行自定义。在某些程序中,标题栏有所不同,但我不想更改完整的标题栏,仅更改按钮。有人可以帮我吗?
查看完整描述

2 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

通常,窗口的标题栏属于窗口的所谓非客户区域。这意味着您不能更改按钮的外观,也不能添加自定义按钮等。


为此,您需要滚动自己的窗口样式或使用可为您完成此工作的库。


一些有用的教程或起点可能是MSDN文章或有关如何创建自定义窗口的教程。


要创建自己的窗口样式,可以使用以下简单样式作为基础:


<Style x:Key="MyCustomWindowStyle" TargetType="{x:Type Window}"> 

    <Setter Property="WindowStyle" Value="None"/> 

    <Setter Property="AllowsTransparency" Value="True"/>

    <Setter Property="Background" Value="White"/> 

    <Setter Property="BorderBrush" Value="Blue"/> 

    <Setter Property="BorderThickness" Value="1"/>                        

    <Setter Property="Template">

        <Setter.Value>

           <ControlTemplate TargetType="{x:Type Window}">

                <Grid Background="{TemplateBinding Background}">

                    <Grid.RowDefinitions>

                        <RowDefinition Height="Auto"/>

                        <RowDefinition/>

                    </Grid.RowDefinitions>

                    <Grid.ColumnDefinitions>

                        <ColumnDefinition/>

                        <ColumnDefinition Width="Auto"/>

                    </Grid.ColumnDefinitions>


                    <!-- this displays the window title -->

                    <TextBlock TextAlignment="Center"

                               Text="{TemplateBinding Title}"/>


                    <StackPanel Grid.Column="1"

                                Orientation="Horizontal"

                                HorizontalAlignment="Stretch"

                                VerticalAlignment="Center">


                        <!-- the minimize button, using your own style -->

                        <Button Style="{StaticResource MyMinimizeButtonStyle}" 

                                Width="20" 

                                Height="20" />


                        <!-- the close button, using your own style -->

                        <Button Style="{StaticResource MyCloseButtonStyle}"

                                Width="20"

                                Height="20" />

                    </StackPanel>


                    <!-- this displays the actual window content -->

                    <ContentPresenter Grid.Row="1"/>

                </Grid>

            </ControlTemplate>

        </Setter.Value>

    </Setter>

</Style>


查看完整回答
反对 回复 2021-04-10
  • 2 回答
  • 0 关注
  • 344 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信