您可以使用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>
在我看来,这就像一个有三个列的网格:第二个列自动调整为其内容宽度(即“文本”),而另外两个列则是星型大小,因此它们最终的宽度都是相同的(每个列占用剩余空间的一半)。
<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>
根据您的字体,您可能需要在矩形上添加一些上边距或下边距,以使它们按您想要的方式与文本对齐--不幸的是,没有内置的方法使矩形与文本中线对齐。