标签不显示"_"字符

Hel*_*rld 32 .net wpf label

Label.Content在WPF中不显示第一次出现的"_"字符.为什么?

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="148" Width="211">
    <Grid>
        <Label Content="L_abel" Height="28" HorizontalAlignment="Left" Margin="37,31,0,0" Name="label1" VerticalAlignment="Top" />
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

设置时Label.Content ="L__abel":

在此输入图像描述

项目中没有其他代码.

Joe*_*oey 49

_在WPF中用于表示访问键,即您可以按下Alt以提供焦点或调用UI元素的键.这类似于&Windows API和Windows窗体中的使用方式.由于标签旨在用作另一个控件的标签(例如,用于描述文本框),因此非常期待这一点.a按下时,您应该在示例中看到下划线Alt.

文档:

要设置访问密钥,请在应该是访问密钥的字符前添加下划线.如果您的内容有多个下划线字符,则只将第一个字符转换为访问密钥; 其他下划线显示为普通文本.如果要转换为访问键的下划线不是第一个下划线,则对于要转换的下划线之前的任何下划线,请使用两个连续的下划线.例如,以下代码包含访问键并显示为_HelloWorld:

<Label>__Hello_World</Label> 
Run Code Online (Sandbox Code Playgroud)

由于H之前的下划线是double,因此W键将作为访问键注册.

我想如果你既不需要也不想要Label提供的功能,你可以使用TextBlock.

  • 那么,如何动态显示包含"_"的内容? (4认同)
  • 这真是令人难以置信。下划线真的是他们能想到的最晦涩难懂的字符了?用 TextBlocks 替换标签是很糟糕的,因为出于某种不可预见的原因,Textblocks 不继承自 Control,这意味着您需要为所有内容提供不同的样式和绑定。 (2认同)

Kna*_*bax 9

乔伊是对的!使用

<TextBlock>L_abel</TextBlock>
Run Code Online (Sandbox Code Playgroud)

并且将显示所有下划线!


Bri*_*dow 5

在WPF中,有一个名为RecognizesAccessKey的属性,尝试将其更改为false。如果使用RadioButton,请注意后面还有标签,并且在RadioButton模板中要禁用访问键识别,必须RecognizesAccessKey="False"在template上进行设置ContentPresenter。然后将其禁用,或者将标签替换为我现在不记得的其他内容。


小智 5

最简单的解决方法是:

更改

<Label Content="L_abel" Height="28" HorizontalAlignment="Left" Margin="37,31,0,0" Name="label1" VerticalAlignment="Top" />
Run Code Online (Sandbox Code Playgroud)

<Label Height="28" HorizontalAlignment="Left" Margin="37,31,0,0" Name="label1" VerticalAlignment="Top">
<TextBlock Text="L_abel"/>
</Label>
Run Code Online (Sandbox Code Playgroud)