2010-12-15 68 views
0

我已經定義了WPF標籤content =「Label_Label」。 顯示時顯示「LabelLabel」。第一個「_」是 考慮爲「Alt鍵」參考。 在我的真實需求中,我將動態分配內容到標籤 ,所以請指定解決此問題的方法。WPF標籤內容:如何避免引用Alt鍵?

<Label Content="Label_Label" Height="28" HorizontalAlignment="Left" Margin="73,42,0,0" Name="label1" VerticalAlignment="Top" Width="88" UseLayoutRounding="False" ClipToBounds="False" />

+0

您的意思是您希望標籤顯示「Label_Label」而不是將「_L」識別爲訪問鍵? – 2010-12-15 04:46:34

+0

@Matt:我想按原樣顯示我的內容。如果是「Label_Label」,我想要「Label_Label」。我想看到我輸入的相同內容。我不能使用雙下劃線「__」,所以要解決問題,因爲我正在獲取動態內容並且無權更改它。 – vrbilgi 2010-12-15 04:53:50

+0

好的,在那種情況下,我的答案應該適合你。 – 2010-12-15 04:56:45

回答

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 
}; 

這是未經測試,但應該工作。很明顯,你必須以通常的方式將「標籤」添加到你的視覺樹上。

+0

您的修復完全根據需要解決我的問題。 我可以問你更多的幫助。 <標籤名稱= 「myLabel」> \t 同樣我想用下面這種代碼做。 Label myLabel = new Label() ..... TextBlock myTextBlock = new TextBlock() ...... – vrbilgi 2010-12-15 05:16:44

+0

我接受您的解決方案因爲它適用於我的要求。如果您有機會,請查看我的上述評論。 – vrbilgi 2010-12-15 10:36:05

2

您可以連續使用兩個逃跑的下劃線:

Content="Label__Label" 

我不知道你是通過「以我真正的需求,我分配內容意味着什麼額外的問題以動態標記「

+0

我無法使用雙下劃線「__」來解決問題,因爲我正在獲取動態內容並且無權更改它。 – vrbilgi 2010-12-15 04:54:47

+0

其他答案應該適合你。 – mwtb 2010-12-15 05:07:50

0

老實說,LabelContentControl之間的唯一區別在於Label允許使用訪問密鑰。如果您不需要訪問密鑰功能,只需使用ContentControl即可。