2012-03-13 199 views
16

我的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> 

enter image description here

當設定Label.Content ="L__abel"

enter image description here

有一個在項目中沒有額外的代碼。

+8

@ H.B。 - 不是一個有用的評論。如果不能詢問MSDN文檔中的任何內容,則關於堆棧溢出的問題很少。如果你沒有答案,不要發佈,那很簡單。 – Danielson 2016-08-29 21:11:08

+7

我不同意。我沒有閱讀整個文檔,因爲它非常龐大而且並非全部相關。通過查看堆棧溢出,我可以找到所需的相關信息。我很高興這篇文章在這裏,很高興答案也是如此。 – Danielson 2016-08-30 15:05:48

回答

28

_在WPF中用於發信號通知密鑰,即您可以用Alt按下的密鑰給出焦點或調用UI元素。這與在Windows API和Windows窗體中使用&類似。由於標籤旨在用作另一個控件的標籤(例如,描述文本框),這是非常期待的。當您按Alt時,您應看到示例中的a帶下劃線。

documentation

要設置快捷鍵,這應該是快捷鍵的字符前加下劃線。如果您的內容具有多個下劃線字符,則只有第一個被轉換爲訪問鍵;其他下劃線顯示爲普通文本。如果要轉換爲訪問密鑰的下劃線不是第一個下劃線,請爲要轉換的下劃線之前的任何下劃線使用兩個連續的下劃線。例如,下面的代碼包含一個訪問鍵和顯示爲_HelloWorld:

<Label>__Hello_World</Label> 

因爲先於小時下劃線是雙,W鍵寄存器作爲訪問密鑰。

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

+2

那麼,如何動態顯示包含「_」的內容呢? – HelloWorld 2012-03-13 13:17:23

+0

除了僅顯示文本之外,請勿將其放在具有其他用途的控件中。或者轉義元字符。 – Joey 2012-03-13 13:19:58

3

因爲_字母用於快捷方式(是加速器)

7

喬伊是對的!使用

<TextBlock>L_abel</TextBlock> 

所有的下劃線都會顯示!

1

在WPF中有一個屬性,稱爲RecognizesAccessKey,嘗試將其更改爲false。如果您使用RadioButton,請注意後面還有標籤,並且在RadioButton模板中禁用訪問密鑰識別,則必須在模板ContentPresenter上設置RecognizesAccessKey="False"。然後這是禁用的,或者標籤被替換爲我現在不記得的其他東西。

0

的最簡單的方法來解決這將是:

變化

<Label Content="L_abel" Height="28" HorizontalAlignment="Left" Margin="37,31,0,0" Name="label1" VerticalAlignment="Top" /> 

<Label Height="28" HorizontalAlignment="Left" Margin="37,31,0,0" Name="label1" VerticalAlignment="Top"> 
<TextBlock Text="L_abel"/> 
</Label>