2013-11-22 9 views
9

Se stai dichiarando MenuItem s, ho sempre visto i loro Header proprietà dichiarate in questo modo:Perché le intestazioni MenuItem hanno caratteri di sottolineatura prima di esse?

<MenuItem Header="_Edit"> 
    <MenuItem Header="_Undo"/> 
    <MenuItem Header="_Redo"/> 
</MenuItem> 

invece di come questo:

<MenuItem Header="Edit"> 
    <MenuItem Header="Undo"/> 
    <MenuItem Header="Redo"/> 
</MenuItem> 

C'è una ragione per questo o è solo una convenzione? Nel designer sembra non avere alcun effetto sul fatto che abbia o meno il carattere di sottolineatura.

+1

Sto indovinando è una vecchia convenzione di usare e per indicare la 'chiave di attivazione' (Get char sottolineato nel menu e può essere utilizzato con alt-chiave), ma e non lo fa giusto bene in testo medio, quindi lo hanno convertito in "_" poiché rappresenta il carattere di sottolineatura. –

risposta

18

È per designare la scorciatoia da tastiera.

"_Edit" significa che CTRL +E attiverà quella voce di menu, mentre

significa che CTRL +D funzionerà.

Inoltre, la lettera sottolineata avrà una sottolineatura quando è a fuoco per indurre l'utente alla scelta rapida da tastiera.

From MSDN

+2

Inoltre: quando visualizzato e messo a fuoco, la lettera dopo il carattere di sottolineatura è sottolineata. –