我试图按照这里解释的标签下划线,但它不起作用。出现错误,指出:
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>
这是怎么回事?
代码似乎没问题。我在VS中使用了您的代码,该消息仅出现一次,一旦我清理并重建了代码,错误就消失了。
这是Visual Studio的一个烦人的故障。只需重新生成项目即可。
只是为了展示如何通过设置 Label 的 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>