11

GroupBox HeaderWPFでaの位置合わせを設定することは可能ですか? デフォルトではアウトラインの左上隅に配置されますが、GroupBox上部の中央に配置したいと思います。以下を使用してテキストのプロパティを設定できることを知っています。

<GroupBox Grid.Row="1" HorizontalAlignment="Center">
   <GroupBox.Header> 
      <TextBlock Text="Cash Match" Foreground="Black" FontWeight="Bold"/>
   </GroupBox.Header>
</GroupBox>

GroupBoxしかし、アウトラインに関してその位置を設定しようとしています。

4

2 に答える 2

18

それは簡単です!GroupBox の Template を編集するだけです:

Blend で、次の操作を行います。

  • GroupBox を右クリック > テンプレートの編集 > コピーの編集 > OK
  • 次のセクションを検索します。

    <Border x:Name="Header" Padding="3,1,3,0" 
            Grid.Column="1" Grid.Row="0" Grid.RowSpan="2">
        ...
    </Border>
    
  • Grid.Columnに変更2

  • こちらもセットHorizontalAlignment="Right"

ヘッダーを右に揃えました!!! しかし、その背後にある白いギャップをボットします。そのために、

  • 次のセクションを検索します。

    <Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4" Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3">
        <Border.OpacityMask>
            ...
        </Border.OpacityMask>
        ...
    </Border>
    
  • RenderTransformOrigin="0.5,0.5"境界線に追加

  • のすぐ上に、次のコードを追加します (これにより、ヘッダーの後ろの「白いギャップ」が右に移動します。

    <Border.RenderTransform>
        <ScaleTransform ScaleX="-1"/>
    </Border.RenderTransform>
    

これで完了です。ヘッダーが右揃えの GroupBox ができました!!!

これが必要かどうか教えてください。

于 2010-01-21T18:08:49.270 に答える
2

group-box-header の配置を変更すると、OS に準拠しないコントロールになります。

したがって、デフォルトのスタイルを使用してこれを変更することはできないと思います。カスタム テンプレートが問題を解決します。

于 2010-01-20T18:55:25.370 に答える