Jak zdefiniować MenuItem.Icon tak, że tekst MenuItemHeader będzie umieszczony pod obrazem elementu menu? Dzięki za pomoc!
44
A
Odpowiedz
45
Prosty sposób sposobem jest nie używać właściwości Ikona ale zamiast umieścić ikonę w nagłówku:
<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>
Na tym prostym przypadku <ContentPresenter Content="Reports" />
może być zastąpiony <TextBlock Text="Reports" />
bo to właśnie ContentPresenter użyłby mimo to przedstawić ciąg. Aby uzyskać bardziej złożony kod Header=
, można użyć ContentPresenter
, jak pokazano.
99
Jak coś wzdłuż linii:
<ContextMenu>
<MenuItem Header="Reports">
<MenuItem.Icon>
<Image Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
2
W przypadku StackPanel stosowania etykiet i nie TextBlock ponieważ tylko Label pozwoli Ci mieć mnemoniki w menu, jak _Reports.
Bardzo dobra odpowiedź, przykład działa przyjemnie ;-). – Vytas
Poniższa odpowiedź jest łatwiejsza i korzysta z właściwości Ikona? –
@ AlexHopeO'Connor Poniższa odpowiedź jest również błędna, jeśli przeczytasz pytanie OP zadawane w tekście, a nie tytuł. Dodatkowo mogłeś zauważyć, że poniższa odpowiedź nie różni się od kodu samego OP. Jasno zapytał, jak wyświetlić tekst pod obrazem, a nie obok niego, PONIŻEJ. Dlatego ta odpowiedź ustawia panel sterujący wewnątrz nagłówka z domyślną orientacją pionową. –