0

这是我目前必须在 WPF 中创建带下划线的标题文本的代码。必须有一个比使用表格更简单的方法。

<Grid>
<FlowDocumentScrollViewer>
  <FlowDocument>
    <Table>
    <Table.Columns>
      <TableColumn Width="Auto"/>
    </Table.Columns>
    <TableRowGroup>
      <TableRow>
        <TableCell>
          <Paragraph Style="{StaticResource Text_LoginHeaderStyle}">
            <Bold>Some header text</Bold>
          </Paragraph>
        </TableCell >
      </TableRow>
      <TableRow>
        <TableCell>
          <BlockUIContainer>
            <Line Style="{StaticResource Control_TitleLineSeparator}" />
          </BlockUIContainer>
        </TableCell>
      </TableRow>
    </TableRowGroup>
    </Table>
  </FlowDocument>
</FlowDocumentScrollViewer>
</Grid>

线的定义是

<Style x:Key="Control_TitleLineSeparator" TargetType="Line" BasedOn="{StaticResource BasicHorizontalLine}">
    <Setter Property="Stroke" Value="Gray"/>
    <Setter Property="StrokeThickness" Value="1"/>
    <Setter Property="Margin" Value="0,0,0,3"/>
</Style>

这个想法是创建一些文本并为其添加下划线,以便下划线延伸封闭容器的整个宽度,在本例中为网格布局。

更新:

我不必使用表格,这是我能找到的唯一可行的方法,并且没有在文本和行之间放置巨大的空间。我现在发现了一种看起来更简单的方法。

<BlockUIContainer>
    <TextBlock Style="{StaticResource Text_LoginHeaderStyle}" Text="Skill Groups"/>
</BlockUIContainer>
<BlockUIContainer>
    <Line Style="{StaticResource Control_TitleLineSeparator}" />
</BlockUIContainer>

但即便如此,这似乎也非常复杂。我已将上面的文本修改为独立的。

4

1 回答 1

1

您可以尝试将所需的文本包装在仅在底部定义边框的边框中:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

  <Border BorderThickness="0,0,0,1"
          BorderBrush="Black"
          HorizontalAlignment="Stretch"
          VerticalAlignment="Top"
          SnapsToDevicePixels="True">
    <TextBlock Text="Some text here" />
  </Border>

</Page>
于 2009-07-28T21:31:57.213 回答