Выравнивание позиции заголовка WPF Groupbox
можно ли установить совмещение должности GroupBox
Header
в WPF? По умолчанию в верхнем левом углу GroupBox
контур, но я хотел бы, чтобы он был центрирован вверху. Я знаю, что вы можете установить свойства текста:
<GroupBox Grid.Row="1" HorizontalAlignment="Center">
<GroupBox.Header>
<TextBlock Text="Cash Match" Foreground="Black" FontWeight="Bold"/>
</GroupBox.Header>
</GroupBox>
но я ищу, чтобы установить его положение относительно GroupBox
контур.
2 ответов
это просто! Просто отредактируйте шаблон GroupBox:
в Blend выполните следующие действия:
- щелкните группы > редактирование шаблонов > редактировать копировать > OK
-
поиск в следующем разделе:
<Border x:Name="Header" Padding="3,1,3,0" Grid.Column="1" Grid.Row="0" Grid.RowSpan="2"> ... </Border>
изменить
Grid.Column
to2
- и набор
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 с правым выровненным заголовком!!!
Пожалуйста, скажите мне, если это то, что вам требуется.
изменение alinment группового поля заголовка приведет к несоответствию ОС элементам управления.
поэтому, я думаю, что вы не сможете изменить это, используя стили по умолчанию. Пользовательский шаблон решит вашу проблему.