Dinamik dizeler bazen '_' içeren MenuItem'in üstbilgisi olarak görünür. WPF alt işaretleri mnemonikler için işaretler olarak ele alır, ama ben bunu istemiyorum. Bunu nasıl devre dışı bırakırım?Bir WPF MenuItem'de Mnemonics'i nasıl devre dışı bırakırım?
6
A
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
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.
Neden bir sorunuz olduğunu sordun? Bu * ne * bu site için ne olduğunu. – Sheridan
@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
@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