Мне это кажется сеткой с тремя столбцами: второй из них автоматически регулируется по ширине содержимого (т. оставшееся место).
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width = "*"/>
<ColumnDefinition Width = "Auto"/>
<ColumnDefinition Width = "*"/>
</Grid.ColumnDefinitions>
<Rectangle Grid.Column = "0" Height = "1" VerticalAlignment = "Center" Stroke = "Black"/>
<TextBlock Grid.Column = "1" Text = "TEXT"/>
<Rectangle Grid.Column = "2" Height = "1" VerticalAlignment = "Center" Stroke = "Black"/>
</Grid>
В зависимости от вашего шрифта вам, возможно, придется поиграть с добавлением некоторых верхних или нижних полей к прямоугольникам, чтобы они выровнялись с текстом так, как вы хотите — к сожалению, нет встроенного способа выровнять его по средней линии текста.
Вы можете создать прямоугольник с помощью Height = "1"
и создать над ним метку с помощью Background = "White"
<Grid>
<Rectangle Height = "1" Stroke = "Black" />
<Label Content = "Text" Background = "White" HorizontalAlignment = "Center" VerticalAlignment = "Center"/>
</Grid>
Простым подходом было бы просто поставить TextBlock
поверх Grid
:
<Grid>
<Grid Height = "1" SnapsToDevicePixels = "True" Background = "Black"/>
<TextBlock Text = "TEXT" HorizontalAlignment = "Center" VerticalAlignment = "Center"
Background = "White" />
</Grid>
Отвечает ли это на ваш вопрос? Пэд левый и правый пэд (центральный пэд) Струна