В Win32 API символ табуляции (\t
) используется для отображения выровненного по правому краю текста (как для ускорителей / ярлыков) в пункте меню ("Open\tCtrl+O"
). В приложении на C # у меня есть класс, полученный из System.Windows.Controls.ContextMenu
, и кажется, что использование символа табуляции аналогичным образом не дает того же результата; он фактически вставляет вкладку, поэтому ярлык выглядит больше по центру, чем по правому краю.
Я знаю, что в .net _
используется вместо Win32 &
для мнемонических подчеркиваний. Есть ли аналогичный заменитель \t
?
Редактировать: код для контекста (без реализации ICommand)
internal class MyContextMenu : ContextMenu, ICommand
{
private readonly string[] wordList;
public MyContextMenu(string aWord)
{
var itemStyle = (Style) TryFindResource("EditorContextMenuItem");
wordList = GetMyWordList(aWord);
if (wordList != null)
{
for (int i = 0; i < wordList.Length; ++i)
{
string word = wordList[i];
var item = new MenuItem
{
Style = itemStyle,
Header = BuildMenuText(i + 1, word),
Command = this,
CommandParameter = i
};
this.Items.Add(item);
}
}
}
static private string BuildMenuText(int index, string text)
{
string menuText;
if (index > 0 && index < 16)
menuText = text + "\t_" + index.ToString("x");
else
menuText = "_" + text;
return menuText;
}
}