Mahapps.Metro 汉堡包菜单中未显示菜单项
Menu Items not showing in Mahapps.Metro Hamburger menu
我正在尝试将菜单项添加到 Mahapps 提供的汉堡菜单中。汉堡菜单支持 ImageItems、IconItems 和 GlyphItems——我想使用的项目类型是 IconItems。我已参考此 post () 寻求帮助,但问题仍然存在。
我也关注了这个博客 post 寻求帮助 (http://jkarger.de/2017/02/06/mahapps-hamburgermenu/)。
这是我的代码:
<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',您只是在定义模板。
我正在尝试将菜单项添加到 Mahapps 提供的汉堡菜单中。汉堡菜单支持 ImageItems、IconItems 和 GlyphItems——我想使用的项目类型是 IconItems。我已参考此 post (
这是我的代码:
<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',您只是在定义模板。