提问者:小点点

WPF C#行间文本


相同的东西


共3个答案

匿名用户

您可以使用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>

根据您的字体,您可能需要在矩形上添加一些上边距或下边距,以使它们按您想要的方式与文本对齐--不幸的是,没有内置的方法使矩形与文本中线对齐。