未在Mahapps.Metro汉堡菜单中显示的菜单项

时间:2017-12-12 16:33:24

标签: wpf xaml mahapps.metro hamburger-menu

我正在尝试将菜单项添加到Mahapps提供的汉堡菜单中。汉堡菜单支持ImageItems,IconItems和GlyphItems - 我想要使用的项目类型是IconItems。我已经提到这个帖子(How to use icon in mahapps hamburger menu XAML)寻求帮助,但问题仍然存在。 我也在此博客文章中寻求帮助(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>

当我运行我的应用程序时,我可以在左侧看到汉堡包菜单,当我按下汉堡包项目时它会打开和关闭,但我看不到菜单中的任何项目。我还尝试添加一个没有图标或图像的标准菜单项,只是为了看看我是否能够看到菜单项的标签 - 但没有显示。

任何建议都会很棒。

1 个答案:

答案 0 :(得分:1)

(基于评论,这显然解决了问题)
我没有看到你将'HamburgerMenuItem'-s设置为内容或'ItemsSource',你只是定义模板。