Mahappsが提供するハンバーガーメニューにメニュー項目を追加しようとしています。ハンバーガーメニューは、ImageItems、IconItems、GlyphItemsをサポートしています。使用したいアイテムのタイプはIconItemsです。私はこれを参考にして(How to use icon in mahapps hamburger menu XAML)投稿しましたが、問題は解決しません。 私はこのブログの投稿(http://jkarger.de/2017/02/06/mahapps-hamburgermenu/)にも従っています。ここで メニュー項目がMahapps.Metroに表示されないハンバーガーメニュー
は私のコードは次のとおりです。
<controls:HamburgerMenu ItemTemplate="{StaticResource MenuItemTemplate}"
OptionsItemTemplate="{StaticResource MenuItemTemplate}"
Foreground="White" DisplayMode="CompactInline"
ContentTemplate="{StaticResource HamburgerMenuContentTemplate}">
<controls:HamburgerMenuItemCollection>
<controls:HamburgerMenuIconItem Icon="{iconPacks:PackIconFontAwesome Kind=AddressBook}" Label="Address" x:Name="Item1" >
<controls:HamburgerMenuIconItem.Tag>
<patient:PatientView/>
</controls:HamburgerMenuIconItem.Tag>
</controls:HamburgerMenuIconItem>
</controls:HamburgerMenuItemCollection>
</controls:HamburgerMenu>
データテンプレート:
<DataTemplate DataType="{x:Type controls:HamburgerMenuIconItem}" x:Key="MenuItemTemplate" >
<Grid Height="64">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="64" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Viewbox ToolTip="{Binding Label}" Width="32" Height="32" >
<Viewbox.Child>
<ContentControl Content="{Binding Icon}"/>
</Viewbox.Child>
</Viewbox>
</Grid>
<TextBlock Grid.Column="1"
VerticalAlignment="Center"
FontSize="16"
Foreground="White"
Text="{Binding Label}" />
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type controls:HamburgerMenuItem}" x:Key="HamburgerMenuContentTemplate">
<Grid x:Name="TheContentGrid">
<Grid.RowDefinitions>
<RowDefinition Height="48" />
<RowDefinition />
</Grid.RowDefinitions>
<Border Grid.Row="0"
Background="#FF444444">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Image Source="../Resources/Module.ico" Width="25" Height="25" Margin="10,0"/>
<TextBlock x:Name="Header"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="24"
Foreground="White"
Text="e-Requesting" />
</StackPanel>
</Border>
<ContentControl x:Name="TheContent"
Grid.Row="1"
Focusable="False"
Foreground="{DynamicResource BlackBrush}"
Content="{Binding Tag}" />
</Grid>
</DataTemplate>
私は左側のハンバーガーメニューを見ることができます私のアプリを実行すると、それが開閉します私がハンバーガーの項目を押すと、メニューに項目が表示されません。私はアイコンや画像のない標準的なメニュー項目を追加しようとしましたが、メニュー項目のラベルが一目でわかるかどうかはわかりませんが、何も表示されません。
どのような提案も素晴らしいでしょう。
私は間違っているかもしれませんが(ハンバーガーそのものに慣れていないかもしれませんが)、あなたはHamburgerMenuItem'sをコンテンツとして、あるいはItemsSource'をどこにでも設定しているとは見えないので、ちょうどテンプレートを定義しています – NSGaga
@NSGagaここに定義されています:(コードの最初のブロックを参照) –
rejy11
@NSGagaあなたが正しいです!私はItemCollectionを入れ子にしてItemsSourceタグを定義する必要がありました – rejy11