10分钟制作UWP汉堡菜单

什么是汉堡菜单?

汉堡菜单,指的是一个可以弹出和收回的侧边栏。在UWP和Android应用中,汉堡菜单都非常常见。

首先我们列出所有需要掌握的前置知识:

1,SplitView

2,StackPanel

3,ListBox

3,TextBlock

4,RelativePanel

6,Button

7,Grid

==============================

首先,我们来分割主页面,将其分为两块。

1 <Grid.RowDefinitions>
2     <RowDefinition Height="Auto" />
3     <RowDefinition Height="*" />
4 </Grid.RowDefinitions>

之后,用RelativePanel将按钮固定在第一块的左边。Segoe MDL2 Assets是一款Windows 10内置的字体,E700是汉堡菜单的“三”字图标。

1 <RelativePanel>
2     <Button Name="HamburgerButton" FontFamily="Segoe MDL2 Assets" Content="" FontSize="36" Click="HamburgerButton_Click" />
3 </RelativePanel>

我们先定义SplitView,再将Button的点击事件改成控制菜单的开合。

 1  <SplitView Name="MySplitView"
 2             Grid.Row="1"
 3             DisplayMode="CompactOverlay"
 4             OpenPaneLength="200"
 5             CompactPaneLength="56"
 6             HorizontalAlignment="Left">
 7     <SplitView.Pane>
 8         <!--这里写菜单内的东西-->
 9     </SplitView.Pane>
10     <SplitView.Content>
11         <!--这里写菜单外的东西-->
12     </SplitView.Content>
13 </SplitView>

注意,这里SplitView的各个属性:

  DisplayMode指弹出和收回的方式,有四种,效果各不一样。

  OpenPaneLength和CompactPaneLength分别指弹出菜单长度和收回菜单长度。

然后设置按钮事件。

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

之后,设置菜单里的选项。

 1 <ListBox SelectionMode="Single"
 2          Name="IconsListBox"
 3          SelectionChanged="IconsListBox_SelectionChanged">
 4     <ListBoxItem Name="ShareListBoxItem">
 5         <StackPanel Orientation="Horizontal">
 6             <TextBlock FontFamily="Segoe MDL2 Assets" FontSize="36" Text="" />
 7             <TextBlock Text="Share" FontSize="24" Margin="20,0,0,0" />
 8         </StackPanel>
 9     </ListBoxItem>
10
11     <ListBoxItem Name="FavoritesListBoxItem">
12         <StackPanel Orientation="Horizontal">
13             <TextBlock FontFamily="Segoe MDL2 Assets" FontSize="36" Text="" />
14             <TextBlock Text="Favorites" FontSize="24" Margin="20,0,0,0" />
15         </StackPanel>
16     </ListBoxItem>17 </ListBox>

我将ListBox的选择模式设为Single,代表单选,同时设置一个事件。

我将每一个ListBoxItem设为一个StackPanel,横向堆叠了图标和文字,同时进行了微调。

接下来设置选择事件。

1 private void IconsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
2     {
3     if (ShareListBoxItem.IsSelected) {}
4     else if (FavoritesListBoxItem.IsSelected) {}
5     }

一个简单的汉堡菜单设置完成。

接下来贴出完整XAML代码。

 1 <Page
 2     x:Class="HamburgerExample.MainPage"
 3     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 4     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 5     xmlns:local="using:HamburgerExample"
 6     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 7     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 8     mc:Ignorable="d">
 9
10     <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
11         <Grid.RowDefinitions>
12             <RowDefinition Height="Auto" />
13             <RowDefinition Height="*" />
14         </Grid.RowDefinitions>
15         <RelativePanel>
16             <Button Name="HamburgerButton" FontFamily="Segoe MDL2 Assets" Content="" FontSize="36" Click="HamburgerButton_Click" />
17         </RelativePanel>
18         <SplitView Name="MySplitView"
19                    Grid.Row="1"
20                    DisplayMode="CompactOverlay"
21                    OpenPaneLength="200"
22                    CompactPaneLength="56"
23                    HorizontalAlignment="Left">
24             <SplitView.Pane>
25                 <ListBox SelectionMode="Single"
26                          Name="IconsListBox"
27                          SelectionChanged="IconsListBox_SelectionChanged">
28                     <ListBoxItem Name="ShareListBoxItem">
29                         <StackPanel Orientation="Horizontal">
30                             <TextBlock FontFamily="Segoe MDL2 Assets" FontSize="36" Text="" />
31                             <TextBlock Text="Share" FontSize="24" Margin="20,0,0,0" />
32                         </StackPanel>
33                     </ListBoxItem>
34
35                     <ListBoxItem Name="FavoritesListBoxItem">
36                         <StackPanel Orientation="Horizontal">
37                             <TextBlock FontFamily="Segoe MDL2 Assets" FontSize="36" Text="" />
38                             <TextBlock Text="Favorites" FontSize="24" Margin="20,0,0,0" />
39                         </StackPanel>
40                     </ListBoxItem>
41
42                 </ListBox>
43             </SplitView.Pane>
44             <SplitView.Content>
45                 <TextBlock Name="ResultTextBlock" />
46             </SplitView.Content>
47         </SplitView>
48
49     </Grid>
50 </Page>
时间: 2024-10-10 16:35:56

10分钟制作UWP汉堡菜单的相关文章

10分钟制作自己的手机QQ

1.注册个bmob.cn的账号:什么是bmob?bmob就是一个提供了基本后台服务器数据库操作的一个平台,你可以不用担心后台操作,使用起来很方便,降低了开发的门槛,提高了开发效率. 2.创建应用: 这个简单,只需要输入个应用名称就可以了! 3.点击应用名称进入设置界面 4.建议直接下载官方的DEMO源码,然后在这个基础上改改即可,下载地址 5.开发工具当然要安装的,详细看安装教程: Android开发之旅:环境搭建及HelloWorld ,聪明的你应该不会之难而退的. 6.导入源码到开发工具Ec

uwp汉堡菜单的实现

---恢复内容开始--- 现在uwp上面的汉堡菜单(就是那个三道杠,点击之后会出现菜单)使用的越来越普遍,比如微软自己家的Cortana.现在我使用的实现方法是使用SplitView实现.首先SplitView将整个App的界面分成两块,一块是弹出来的汉堡菜单,一块是收起汉堡菜单之后App的界面.弹出来的汉堡菜单叫做Pane,这个界面在<SplitView.Pane></SplitView.Pane>标签下面写,就和普通的页面布局一样,该用Grid就用Grid(对了,现在微软所谓的

如何快速的10分钟制作一张主从表单及功能

本文介绍如何使用快速开发平台建立一张主从表单页面 我们的网址:www.sdpsoft.com QQ:136846796 电话:15050176512 1.建立数据源 新建一张"测试_奖励管理_主表_页面"的数据源: 点击同步字段可以将此表中的字段同步过来(如图所示) 新建一张"测试_奖励管理_从表_页面"的数据源 2.在页面设计中制作页面 新建一张页面配置其信息 页面类型选择主从表单类型 脚本引用:test.js 添加数据集合(数据源): 主表信息 并且通过&quo

安卓10分钟制作自己的手机QQ(即时通信)

1.注册个bmob.cn的账号:什么是bmob?bmob就是一个提供了基本后台服务器数据库操作的一个平台,你可以不用担心后台操作,使用起来很方便,降低了开发的门槛,提高了开发效率. 2.创建应用: 这个简单,只需要输入个应用名称就可以了! 3.点击应用名称进入设置界面 4.建议直接下载官方的DEMO源码,然后在这个基础上改改即可,下载地址 5.开发工具当然要安装的,详细看安装教程: Android开发之旅:环境搭建及HelloWorld ,聪明的你应该不会之难而退的. 6.导入源码到开发工具Ec

张高兴的 Xamarin.Forms 开发笔记:为 Android 与 iOS 引入 UWP 风格的汉堡菜单 ( MasterDetailPage )

所谓 UWP 样式的汉堡菜单,我曾在"张高兴的 UWP 开发笔记:汉堡菜单进阶"里说过,也就是使用 Segoe MDL2 Assets 字体作为左侧 Icon,并且左侧使用填充颜色的矩形用来表示 ListView 的选中.如下图 但怎样通过 Xamarin.Forms ,将这一样式的汉堡菜单带入到 Android 与 iOS 中呢? 一.大纲-细节模式简介 讲代码前首先来说说这种导航模式,官方称"大纲-细节模式"(MasterDetail).左侧的汉堡菜单称为&qu

张高兴的 UWP 开发笔记:汉堡菜单进阶

不同于Windows 8应用,Windows 10引入了"汉堡菜单"这一导航模式.说具体点,就拿官方的天气应用来说,左上角三条横杠的图标外加一个SplitView控件组成的这一导航模式就叫"汉堡菜单". 本文讨论的是如何实现官方的这一样式(点击后左侧出现一个填充矩形),普通实现网上到处都是,有需要的朋友自己百度下吧. 下面将介绍两种不同的实现方法,第一种最简单的方法是直接使用 Template 10 模板,第二种就是纯手写了. 若有什么不正确的地方望指正,大家共同讨

Win10 UWP 开发系列:使用SplitView实现汉堡菜单及页面内导航

在Win10之前,WP平台的App主要有枢轴和全景两种导航模式,我个人更喜欢Pivot即枢轴模式,可以左右切换,非常方便.全景视图因为对设计要求比较高,自己总是做不出好的效果.对于一般的新闻阅读类App来说,Pivot更适合多个频道的展示,因为内容基本都是一样的. 到了Win10,微软模仿其他平台也推出了汉堡菜单,但并没有提供现成的控件,而是需要开发者通过一个名为SplitView的控件来实现.我个人并不觉得左上角的菜单有多么方便,汉堡菜单的使用必然会改变以前的导航模式,比如以前底部的AppBa

10分钟教你拥有可编程QQ机器人

10分钟教你拥有可编程QQ机器人 --酷Q Air教程 --BY dudujerry 要想阅读本篇教程,读者需要基本的C++知识以及Visual Studio 2010/2015/2017 首先,需要从官方网站下载软件 https://cqp.cc/t/23253 .下载后从"下载"/"Download"文件夹中找到其压缩包.解压. 然后,我们从Github中下载酷Q的SDK. https://github.com/CoolQ/cqsdk-vc 解压发现.sln,是

9.2 制作下拉菜单(1)

一.菜单的HTML结构 下面就来定义菜单的HTML结梅.思路是把整个菜单分为4组,每一组在平常状态时,只显示一级菜单项,当鼠标指针经过时,显示相应的子菜单.首先用ul和li定义出外层结构,然后在每个li项目中,使用dI定义一个菜单项,一级菜单文字定义为dt.子菜单的文字定义为dd.代码如下. 折叠展开XML/HTML 代码复制内容到剪贴板 <body> <ul id="menu"> <li> <dl> <dt><a hr