zoukankan      html  css  js  c++  java
  • UWP汉堡菜单

    在UWP中引入了汉堡菜单,我们先看下效果图

    菜单项

        public class MenuItem
        {
            public Symbol Icon { get; set; }
            public string Text { get; set; }
        }
    

    XAML

    <Page.Resources>
            <ResourceDictionary>
                <DataTemplate x:Key="MenuItemDataTemplate">
                    <StackPanel Orientation="Horizontal">
                        <SymbolIcon Symbol="{Binding Icon}" />
                        <TextBlock Text="{Binding Text}" Margin="18" />
                    </StackPanel>
                </DataTemplate>
            </ResourceDictionary>
        </Page.Resources>
        <Grid x:Name="rootGrid" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
            <SplitView x:Name="mainSplitView" OpenPaneLength="150" CompactPaneLength="45" PaneBackground="LightGray" DisplayMode="CompactOverlay">
                <SplitView.Pane>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="auto" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <StackPanel Orientation="Horizontal">
                            <Button x:Name="hanburgButton" FontFamily="Segoe MDL2 Assets" Content="�" FontSize="24" Click="hanburgButton_Click" />
                            <TextBlock Margin="10,0,0,0" VerticalAlignment="Center" FontSize="18" Text="汉堡菜单"/>
                        </StackPanel>
                        <ListView Grid.Row="1" x:Name="mainListView" ItemsSource="{Binding menuItems}" ItemTemplate="{StaticResource MenuItemDataTemplate}" />
                    </Grid>
                </SplitView.Pane>
                <Frame x:Name="splitVewFrame" Margin="0,10" />
            </SplitView>
        </Grid>
    

    添加菜单项数据源

       ObservableCollection<MenuItem> menuItems = new ObservableCollection<MenuItem>()
            {
                new MenuItem() { Icon=Symbol.People,Text="People"},
                 new MenuItem() { Icon=Symbol.Phone,Text="Phone"},
                  new MenuItem() { Icon=Symbol.Message,Text="Message"},
                   new MenuItem() { Icon=Symbol.Mail,Text="Mail"}
            };
                mainListView.ItemsSource = menuItems;
    

    汉堡按钮切换SplitView收起折叠状态

     private void hanburgButton_Click(object sender, RoutedEventArgs e)
            {
                mainSplitView.IsPaneOpen = !mainSplitView.IsPaneOpen;
            }
    

    SplitView常用属性

    • CompactPaneLength
      设置SplitView收起的长度
    • OpenPaneLength
      设置SplitView打开的长度
    • DisplayMode
      Overlay:窗格打开时会覆盖内容,且不会占据控件布局中的空间。
      Inline: 窗格及内容是并行显示的,并占据控件布局中的空间。
      CompactOverlay:定义的窗格数量及内容是并行显示的,并占据控件布局中的空间。窗格的其余部分打开时会覆盖内容,且不会占据控件布局中的空间。
      CompactInline:定义的窗格数量及内容是并行显示的,并占据控件布局中的空间.窗格的其余部分打开时会将内容推到侧边,且会占据控件布局中的空间.

    参考msdn

  • 相关阅读:
    备忘链接执行js时注意target必须是_self或者_top
    windows2003 Server远程连接Event Error;event id:12517,12503,1111
    网站配置了Url重写的Handler会导致虚拟目录找不到dll
    SEO 搜索引擎优化技巧
    11款开源Wiki管理系统
    收集了几个优秀的设计公司网站
    8款开源聊天系统和程序/Open Chat
    制作Web应用程序安装程序的方法
    转:推荐21套非常棒的网页设计图标素材
    14款开源文档管理系统
  • 原文地址:https://www.cnblogs.com/panpancn/p/5365629.html
Copyright © 2011-2022 走看看