Dans l'API Win32, le caractère de tabulation (\t
) est utilisé pour afficher le texte aligné à droite (comme pour les raccourcis/raccourcis) dans un élément de menu ("Open\tCtrl+O"
). Dans une application C#, j'ai une classe dérivée de System.Windows.Controls.ContextMenu
et il semble que l'utilisation du caractère de tabulation d'une manière similaire n'obtient pas le même résultat; il insère en fait une tabulation, de sorte que le raccourci semble plus centré que aligné à droite.Comment puis-je aligner à droite le texte de l'accélérateur dans un menuitem Windows.Controls.ContextMenu?
Je sais que dans .net _
est utilisé à la place du Win32 &
pour les soulignements mnémoniques. Y a-t-il un substitut similaire pour \t
?
Edit: code contexte (sans la mise en œuvre 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;
}
}
Avez-vous essayé de reformater des éléments ContextMenu? L'affichage d'un code sera utile. – decyclone
Publié du code à la question. Pouvez-vous élaborer sur l'idée de re-templating? –