WPF标签内容:如何避免引用Alt Key?

时间:2010-12-15 04:39:44

标签: c# wpf

我已使用 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" />

3 个答案:

答案 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)

老实说,LabelContentControl之间的唯一区别是Label允许使用访问密钥。如果您不想使用访问密钥功能,只需使用ContentControl