我已使用 content =“Label_Label”定义了WPF标签。 显示时会显示“LabelLabel ”。第一个“_”是 考虑用于“Alt Key”参考。 根据我的实际要求,我将内容分配给Label 动态,所以请指明这个问题的解决方案。
<Label Content="Label_Label" Height="28" HorizontalAlignment="Left" Margin="73,42,0,0" Name="label1" VerticalAlignment="Top" Width="88" UseLayoutRounding="False" ClipToBounds="False" />
答案 0 :(得分:4)
如果您将标签的内容绑定到某些数据并且无法“逃避”数据中的下划线(按照mwtb的答案),则另一个选项是将文本包装在标签内的TextBlock中。 TextBlocks没有访问密钥的概念,因此它们将按原样显示文本。
所以不要这样:
<Label Content="{Binding MyText}" />
你可以这样做:
<Label><TextBlock Text="{Binding MyText}" /></Label>
假设“MyText”包含字符串“Hello_World”,前者将显示HelloWorld,而后者将显示Hello_World。
<强>更新强>
根据您的评论,代码中的内容相同:
var tb = new TextBlock();
tb.SetBinding(TextBlock.TextProperty, new Binding("MyText"));
var label = new Label
{
Content = tb
};
这是未经测试但应该有效。显然,你必须以通常的方式在视觉树上添加“标签”。
答案 1 :(得分:2)
您可以通过连续使用两个来转义下划线:
Content="Label__Label"
我不确定你所暗示的另外一个问题是“在我的实际要求中我是动态地将内容分配给标签”
答案 2 :(得分:1)
老实说,Label
和ContentControl
之间的唯一区别是Label
允许使用访问密钥。如果您不想使用访问密钥功能,只需使用ContentControl
。