Untitled

mail@pastecode.io avatar
unknown
ada
3 years ago
8.3 kB
2
Indexable
Never
<Controls:MetroWindow  x:Class="APV.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
        xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
        xmlns:local="clr-namespace:APV"
        mc:Ignorable="d"
        xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        TextElement.Foreground="{DynamicResource MaterialDesignBody}"
        TextElement.FontWeight="Regular"
        TextElement.FontSize="13"
        TextOptions.TextFormattingMode="Ideal"
        TextOptions.TextRenderingMode="Auto"
        Background="{DynamicResource MaterialDesignPaper}"
        FontFamily="{DynamicResource MaterialDesignFont}"
        Title="Window2" Height="450" Width="800">
    <Controls:MetroWindow.Resources>
        <ResourceDictionary>

            <!--  This is the template for all menu items. In this sample we use the glyph items.  -->
            <DataTemplate x:Key="HamburgerMenuItem" DataType="{x:Type Controls:HamburgerMenuGlyphItem}">
                <DockPanel Height="48" LastChildFill="True">
                    <Grid x:Name="IconPart"
              Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type Controls:HamburgerMenu}}, Path=CompactPaneLength}"
              DockPanel.Dock="Left">
                        <Image Margin="12"
                 HorizontalAlignment="Center"
                 VerticalAlignment="Center"
                 Source="{Binding Glyph}" />
                    </Grid>
                    <TextBlock x:Name="TextPart"
                   VerticalAlignment="Center"
                   FontSize="16"
                   Text="{Binding Label}" />
                </DockPanel>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type Controls:HamburgerMenu}}, Path=PanePlacement}" Value="Right">
                        <Setter TargetName="IconPart" Property="DockPanel.Dock" Value="Right" />
                        <Setter TargetName="TextPart" Property="Margin" Value="8 0 0 0" />
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>

            <!--  This is the template for the option menu item  -->
            <DataTemplate x:Key="HamburgerOptionsMenuItem" DataType="{x:Type Controls:HamburgerMenuIconItem}">
                <DockPanel Height="48" LastChildFill="True">
                    <ContentControl x:Name="IconPart"
                        Width="{Binding RelativeSource={RelativeSource AncestorType={x:Type Controls:HamburgerMenu}}, Path=CompactPaneLength}"
                        Content="{Binding Icon}"
                        DockPanel.Dock="Left"
                        Focusable="False"
                        IsTabStop="False" />
                    <TextBlock x:Name="TextPart"
                   VerticalAlignment="Center"
                   FontSize="16"
                   Text="{Binding Label}" />
                </DockPanel>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type Controls:HamburgerMenu}}, Path=PanePlacement}" Value="Right">
                        <Setter TargetName="IconPart" Property="DockPanel.Dock" Value="Right" />
                        <Setter TargetName="TextPart" Property="Margin" Value="8 0 0 0" />
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>

        </ResourceDictionary>
    </Controls:MetroWindow.Resources>
    <Controls:HamburgerMenu x:Name="HamburgerMenuControl"
                          DisplayMode="CompactOverlay"
                          HamburgerWidth="48"
                          ItemInvoked="HamburgerMenuControl_OnItemInvoked"
                          ItemTemplate="{StaticResource HamburgerMenuItem}"
                          OptionsItemTemplate="{StaticResource HamburgerOptionsMenuItem}">
        <!--  Header  -->
        <Controls:HamburgerMenu.HamburgerMenuHeaderTemplate>
            <DataTemplate>
                <TextBlock HorizontalAlignment="Center"
                   VerticalAlignment="Center"
                   FontSize="16"
                   Foreground="White"
                   Text="Pictures" />
            </DataTemplate>
        </Controls:HamburgerMenu.HamburgerMenuHeaderTemplate>

        <!--  Items  -->
        <Controls:HamburgerMenu.ItemsSource>
            <Controls:HamburgerMenuItemCollection>
                <Controls:HamburgerMenuGlyphItem Glyph="/Assets/Photos/BigFourSummerHeat.png" Label="Big four summer heat" />
                <Controls:HamburgerMenuGlyphItem Glyph="/Assets/Photos/BisonBadlandsChillin.png" Label="Bison badlands Chillin" />
                <Controls:HamburgerMenuGlyphItem Glyph="/Assets/Photos/GiantSlabInOregon.png" Label="Giant slab in Oregon" />
                <Controls:HamburgerMenuGlyphItem Glyph="/Assets/Photos/LakeAnnMushroom.png" Label="Lake Ann Mushroom" />
            </Controls:HamburgerMenuItemCollection>
        </Controls:HamburgerMenu.ItemsSource>

        <!--  Options  -->
        <Controls:HamburgerMenu.OptionsItemsSource>
            <Controls:HamburgerMenuItemCollection>

                <Controls:HamburgerMenuIconItem Label="About">
                    <Controls:HamburgerMenuIconItem.Icon>
                        <iconPacks:PackIconMaterial Width="22"
                                        Height="22"
                                        HorizontalAlignment="Center"
                                        VerticalAlignment="Center"
                                        Kind="Help" />
                    </Controls:HamburgerMenuIconItem.Icon>
                    <Controls:HamburgerMenuIconItem.Tag>
                        <TextBlock HorizontalAlignment="Center"
                       VerticalAlignment="Center"
                       FontSize="28"
                       FontWeight="Bold">
                About
                        </TextBlock>
                    </Controls:HamburgerMenuIconItem.Tag>
                </Controls:HamburgerMenuIconItem>

            </Controls:HamburgerMenuItemCollection>
        </Controls:HamburgerMenu.OptionsItemsSource>

        <!--  Content  -->
        <Controls:HamburgerMenu.ContentTemplate>
            <DataTemplate>
                <Grid x:Name="ContentGrid">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="48" />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <Border Grid.Row="0"
                  Margin="-1 0 -1 0"
                  Background="#7A7A7A">
                        <TextBlock x:Name="Header"
                       HorizontalAlignment="Center"
                       VerticalAlignment="Center"
                       FontSize="24"
                       Foreground="White"
                       Text="{Binding Label}" />
                    </Border>
                    <Controls:TransitioningContentControl Grid.Row="1"
                                                Content="{Binding}"
                                                RestartTransitionOnContentChange="True"
                                                Transition="Default">

                        <Controls:TransitioningContentControl.Resources>
                            

                            <DataTemplate DataType="{x:Type Controls:HamburgerMenuIconItem}">
                                <ContentControl Content="{Binding Tag, Mode=OneWay}"
                                  Focusable="True"
                                  IsTabStop="False" />
                            </DataTemplate>
                        </Controls:TransitioningContentControl.Resources>

                    </Controls:TransitioningContentControl>
                </Grid>
            </DataTemplate>
        </Controls:HamburgerMenu.ContentTemplate>
    </Controls:HamburgerMenu>

</Controls:MetroWindow>