2013-11-04 29 views

cevap

5

menuitems üzerinde çalışmaya görünmüyordu iplik WPF listbox. Skip underscore symbols in strings, tüm çözümleri denedikten sonra ben bunu:

public class EscapeMnemonicsStringConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     string str = value as string; 
     return str != null ? str.Replace("_", "__") : value; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 
+0

Neden bir sorunuz olduğunu sordun? Bu * ne * bu site için ne olduğunu. – Sheridan

+10

@Sheridan, buna tamamen izin veriliyor ... Bir soru sorduğunuzda, hatta göndermeden önce yanıtlama seçeneğiniz var. Sorununuz, bir şey bulamadıysanız, bu, gelecekteki görüntüleyenler için oldukça yararlı olabilir. – SuperPrograman

+1

@SuperPrograman, ben buna kişisel olarak katılmıyorum, ben yardım sayfalarına baktım ve şimdi doğru olduğunu kabul ettim. Özür dilerim Ömer. – Sheridan

0

Alternatif bir çözüm düzeltilmiş özelliklere sahip TextBox içine menü metnini koymaktır .

kodunda sizin MenuItem bina ise, bu şekilde görünecektir:

var menuItem = new MenuItem(); 
var menuHeader = new Textbox(); 
menuHeader.Text = "your_text_here"; 
menuHeader.IsReadOnly = true; 
menuHeader.Background = Brushes.Transparent; 
menuHeader.BorderThickness = new Thickness(0); 
menuItem.Header = menuHeader; 
menuItem.ToolTip = "your detailed tooltip here"; 
menuItem.Click += YourEventHandlerHere; 
yourMenu.Items.Add(menuItem); 

menü XAML olduğunu ve dinamiktir sadece metin ise, şu şekilde görünecektir:

<MenuItem Name="menuDynamic" Click="menuDynamic_Click"> 
    <MenuItem.Header> 
     <TextBox Name="dynamicMenu" 
       Text="With_Underscore" 
       IsReadOnly="True" 
       Background="Transparent" 
       BorderThickness="0" /> 
    </MenuItem.Header> 
</MenuItem> 

Ardından, kodunuz gerektiğinde dynamicMenu.Text = "what_ever"; dinamik olarak ayarlanmış olabilir.

İlgili konular