2010-12-09 24 views
2

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

Avez-vous essayé de reformater des éléments ContextMenu? L'affichage d'un code sera utile. – decyclone

+0

Publié du code à la question. Pouvez-vous élaborer sur l'idée de re-templating? –

Répondre

1

Définir votre texte d'accélérateur à la propriété MenuItem.InputGestureText.

Notez également la remarque dans la page de documentation: Cette propriété n'associe pas le mouvement d'entrée à l'élément de menu; il ajoute simplement du texte à l'élément de menu. L'application doit gérer l'entrée de l'utilisateur pour effectuer l'action. Pour plus d'informations sur l'association d'une commande à un élément de menu, voir Commande.