WPF - 无法将Groupbox标头对齐

时间:2014-02-28 11:49:40

标签: wpf alignment dockpanel

我是WPF的新手,

我无法将groupbox标题文字“abc”对齐到右边,它留在左边,不知道为什么,有人可以帮我吗?

<Window x:Class="UserInterface.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="500" Width="625">
    <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>             
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid Grid.Column="0" ShowGridLines="True">
            <Grid.RowDefinitions>
                <RowDefinition Height="4*"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <StackPanel Grid.Row="1">
                <GroupBox>
                    <GroupBox.Header>
                        <DockPanel>
                            <TextBlock HorizontalAlignment="Right">abc</TextBlock>
                        </DockPanel>
                    </GroupBox.Header>
                </GroupBox>
            </StackPanel>
        </Grid>
    </Grid>
</Window>

2 个答案:

答案 0 :(得分:1)

如果您想将标题与Template 对齐,则必须覆盖Groupbox的{​​{1}}。默认情况下,它位于默认模板的左侧。

关键是

  1. 在主持标题内容提交者的边框上将Right设置为Grid.ColumnSpan
  2. 在ContentPresenter上将2设置为HorizontalAlignment
  3. 以下是可行的XAML:

    Right

答案 1 :(得分:0)

您需要在Control的模板中重新设计ContentPresenter。

MSDN有一个例子,但不知怎的,它也重新设计了GroupBox。

检查一下,看看那是不是你要找的东西。您正在寻找此行

<ContentPresenter Margin="4"
                  ContentSource="Header"
                  RecognizesAccessKey="True" />

只需添加:

HorizontalAlignment="Right"