在标签下划线

Underline a Label

我正尝试按照 here 的说明给标签加下划线,但它不起作用。出现一条错误消息:

Mode must be specified for RelativeSource

但是我已经说明了:

    <Label Grid.Row="0" Grid.Column="0" Tag="ID" FontWeight="Bold" Margin="10,5" HorizontalAlignment="Left">
         <TextBlock TextDecorations="Underline" Text="{Binding Path=Tag, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Label}}}"    />
   </Label>

这是怎么回事?

这是 visual studio 的一个烦人的故障。只需重建项目。

代码好像没问题。我在我的 VS 中使用了你的代码,该消息只出现一次,一旦我清理并重建代码,错误就消失了。

只是为了展示如何通过设置标签的 Template 属性 而不是 Tag 属性 解决方法来实际完成此操作:

<Label Content="ID" FontWeight="Bold" Margin="10,5" HorizontalAlignment="Left">
    <Label.Template>
        <ControlTemplate TargetType="Label">
            <TextBlock Margin="{TemplateBinding Padding}"
                       TextDecorations="Underline"
                       Text="{Binding Path=Content,
                              RelativeSource={RelativeSource AncestorType=Label}}"/>
        </ControlTemplate>
    </Label.Template>
</Label>