WPF Groupbox标题位置对齐

amb*_*g36 8 wpf header groupbox alignment

是否可以GroupBox Header在WPF中设置位置对齐?默认设置是放在GroupBox轮廓的左上角,但我希望它在顶部居中.我知道您可以使用以下方法设置文本的属性:

<GroupBox Grid.Row="1" HorizontalAlignment="Center">
   <GroupBox.Header> 
      <TextBlock Text="Cash Match" Foreground="Black" FontWeight="Bold"/>
   </GroupBox.Header>
</GroupBox>
Run Code Online (Sandbox Code Playgroud)

但是我希望根据GroupBox轮廓设置它的位置.

mg0*_*007 13

这很简单!只需编辑GroupBox模板:

在Blend中,执行以下操作:

  • 右键单击GroupBox>编辑模板>编辑副本>确定
  • 搜索以下部分:

    <Border x:Name="Header" Padding="3,1,3,0" 
            Grid.Column="1" Grid.Row="0" Grid.RowSpan="2">
        ...
    </Border>
    
    Run Code Online (Sandbox Code Playgroud)
  • 更改Grid.Column2

  • 还设置 HorizontalAlignment="Right"

你刚刚将标题对齐了!但它背后的白色差距.为了那个原因,

  • 现在搜索以下部分:

    <Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4" Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3">
        <Border.OpacityMask>
            ...
        </Border.OpacityMask>
        ...
    </Border>
    
    Run Code Online (Sandbox Code Playgroud)
  • 添加RenderTransformOrigin="0.5,0.5"到边框

  • 在上面,添加以下代码(这会将标题后面的"白色间隙"移到右侧:

    <Border.RenderTransform>
        <ScaleTransform ScaleX="-1"/>
    </Border.RenderTransform>
    
    Run Code Online (Sandbox Code Playgroud)

你完成了!你刚刚得到一个具有右对齐标题的GroupBox!

请告诉我这是否是您所需要的.