Come definire MenuItem.Icon in modo che il testo MenuItemHeader venga posizionato sotto l'immagine della voce di menu? Grazie per l'aiuto!
Il modo più semplice è quello di non usare la proprietà Icona ma di inserire l'icona nell'intestazione:
<Menu>
<MenuItem>
<MenuItem.Header>
<StackPanel>
<Image Width="20" Height="20" Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png" />
<ContentPresenter Content="Reports" />
</StackPanel>
</MenuItem.Header>
</MenuItem>
<MenuItem Header="Export" />
<MenuItem Header="New record" />
</Menu>
Per questo semplice caso il <ContentPresenter Content="Reports" />
può essere sostituito con un <TextBlock Text="Reports" />
perché è quello che ContentPresenter userebbe per presentare comunque la stringa. Per più complessi Header=
, puoi usare ContentPresenter
come mostrato.
Come qualcosa sulla falsariga di:
<ContextMenu>
<MenuItem Header="Reports">
<MenuItem.Icon>
<Image Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
Nel caso di StackPanel usa Label e non TextBlock poiché solo Label ti permetterà di avere gli mnemonici nel menu, come _Reports.