原文:UWP入门(七)--SplitView详解与页面跳转

官方文档,逼着自己用英文看,UWP开发离不开官方文档

1. SplitView 拆分视图控件

拆分视图控件具有一个可展开/可折叠的窗格和一个内容区域

<SplitView>
<SplitView.Content>
singleObject
</SplitView.Content>
<SplitView.Pane>
singleObject
</SplitView.Pane>
</SplitView>

A split view’s content area is always visible. The pane can expand and collapse or remain in an open state, and can present itself from either the left side or right side of an app window. The pane has four modes:

  • Overlay

    The pane is hidden until opened. When open, the pane overlays the content area.

    pane不打开是隐藏,打开的时候pane覆盖掉content

  • Inline

    The pane is always visible and doesn’t overlay the content area. The pane and content areas divide the available screen real estate.

    pane不打开是隐藏,打开的时候pane推开content

  • CompactOverlay

    A narrow portion of the pane is always visible in this mode, which is just wide enough to show icons. The default closed pane width is 48px, which can be modified with CompactPaneLength. If the pane is opened, it will overlay the content area.

    不打开时,pane留下一点宽度,默认48px,可以用CompactPaneLength修改

  • CompactInline

    A narrow portion of the pane is always visible in this mode, which is just wide enough to show icons. The default closed pane width is 48px, which can be modified with CompactPaneLength. If the pane is opened, it will reduce the space available for content, pushing the content out of its way.

    不打开时,pane留下一点宽度,默认48px,可以用CompactPaneLength修改

2. 页面跳转和SplitView,用static传递了数据

方便你找代码,直接目录跳转

2.1 MainPage

  <StackPanel>
<StackPanel Orientation="Horizontal">
<Button Name="HomeButton" Content="Home" Click="HomeButton_Click" Margin="0,0,20,0" />
<Button Name="BackButton" Content="Back" Click="BackButton_Click" Margin="0,0,20,0" />
<Button Name="ForwardButton" Content="Forward" Click="ForwardButton_Click" Margin="0,0,20,0" />
<Button Name="NavigateButton" Content="Navigate Root Frame" Click="NavigateButton_Click" />
</StackPanel>
<Frame Name="MyFrame"> </Frame>
</StackPanel>
 public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
//自己有Frme,布局里面的
MyFrame.Navigate(typeof(Page1));
} private void HomeButton_Click(object sender, RoutedEventArgs e)
{
MyFrame.Navigate(typeof(Page1));
} private void BackButton_Click(object sender, RoutedEventArgs e)
{
//haha,不用自己写堆栈
if (MyFrame.CanGoBack)
{
MyFrame.GoBack();
}
} private void ForwardButton_Click(object sender, RoutedEventArgs e)
{
if (MyFrame.CanGoForward)
{
MyFrame.GoForward();
}
} private void NavigateButton_Click(object sender, RoutedEventArgs e)
{
//注意,这会替换整个页面的Frame
this.Frame.Navigate(typeof(Page2));
}
}

2.2 App.xml.cs

//只可以在应用内访问
internal static string SomeImportantValue;

2.3 Page1

<StackPanel>
<TextBlock FontSize="48" Text="Page 1" />
<HyperlinkButton Content="Go to Page 2" Click="HyperlinkButton_Click" />
<HyperlinkButton Content="Go to Microsoft.com" NavigateUri="http://www.microsoft.com" />
</StackPanel>
 private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(Page2));
}

2.4 Page2

  private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
{
App.SomeImportantValue = ValueTextBox.Text;
Frame.Navigate(typeof(Page3), ValueTextBox.Text);
// Frame.Navigate(typeof(Page3), "DEVIL");
} protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (!String.IsNullOrEmpty(App.SomeImportantValue))
{
ValueTextBox.Text = App.SomeImportantValue;
}
}
  <StackPanel>
<TextBlock FontSize="48" Text="Page 2" />
<TextBox Name="ValueTextBox" Width="200" />
<HyperlinkButton Content="Go to Page 3" Click="HyperlinkButton_Click" />
</StackPanel>

2.5 Page3

 <StackPanel>
<TextBlock FontSize="48" Text="Page 3" />
<TextBox Name="ValueTextBox" Width="200" />
</StackPanel>
 //页面刚打开的时候调用
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var value = (string)e.Parameter;
ValueTextBox.Text = value;
}

UWP入门(七)--SplitView详解与页面跳转的更多相关文章

  1. js中window对象详解以及页面跳转

    1.window.top.window.location = "index.asp"; 2.window.top.location.href="index.asp&quo ...

  2. 经典Spring入门基础教程详解

    经典Spring入门基础教程详解 https://pan.baidu.com/s/1c016cI#list/path=%2Fsharelink2319398594-201713320584085%2F ...

  3. 详解vue 路由跳转四种方式 (带参数)

    详解vue 路由跳转四种方式 (带参数):https://www.jb51.net/article/160401.htm 1.  router-link ? 1 2 3 4 5 6 7 8 9 10 ...

  4. 【IOS 开发】Object-C 入门 Xcode 环境详解

    作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38424965 一. Xcode 环境安装 与 工程创建 1. ...

  5. 使用IDEA创建Maven项目和Maven使用入门(配图详解)

    本文详解的讲解了使用IDEA创建Maven项目,及Maven的基础入门. 1.打开IDEA,右上角选择File->New->Project 2.如图中所示选择Maven(可按自己所需添加, ...

  6. Solr安装入门、查询详解

    Solr安装入门:http://www.importnew.com/12607.html 查询详解:http://www.360doc.com/content/14/0306/18/203871_35 ...

  7. (Dos)/BAT命令入门与高级技巧详解(转)

    目录 第一章 批处理基础 第一节 常用批处理内部命令简介 1.REM 和 :: 2.ECHO 和 @ 3.PAUSE 4.ERRORLEVEL 5.TITLE 6.COLOR 7.mode 配置系统设 ...

  8. 音视频入门-11-PNG文件格式详解

    * 音视频入门文章目录 * PNG 文件格式解析 PNG 图像格式文件由一个 8 字节的 PNG 文件署名域和 3 个以上的后续数据块(IHDR.IDAT.IEND)组成. PNG 文件包括 8 字节 ...

  9. 音视频入门-14-JPEG文件格式详解

    * 音视频入门文章目录 * JPEG 文件格式解析 JPEG 文件使用的数据存储方式有多种.最常用的格式称为 JPEG 文件交换格式(JPEG File Interchange Format,JFIF ...

随机推荐

  1. RequiredFieldValidator----验证控件不起作用

    验证码对于网络时代的我们来说实在是太熟悉了.登陆一个站点.注冊一个账户或是各种聊天工具登陆都须要来输入验证码.     为什么要使用验证码呢?     验证码通常是防止有人利用机器人自己主动批量注冊. ...

  2. 【codeforces 765C】Table Tennis Game 2

    [题目链接]:http://codeforces.com/contest/765/problem/C [题意] 枚举游戏先拿到k分的人胜; 然后两个人一个人得了a分,一个人得了b分; 问你最多可能进行 ...

  3. ARM汇编初探---汇编代码中都有哪几类指令---ARM伪指令介绍

    要学习一个东西首先要把概念搞清楚,以下仅仅是自己的一些关于汇编的理解. 可运行文件里的01码是机器码,机器码不等于汇编码,尽管机器码能够非常easy翻译成汇编码. 汇编码中包括非常多汇编指令.伪指令和 ...

  4. HDU 1501 - dp

    传送门 题目大意: 问两个词能不能加错拼成一个第三个词. 题目分析: dp方程还是很好想:dp[i][j]表示第一个词前i个和第二个词前j个能不能拼成第三个词的前i+j个. 初始化如果s1[1] == ...

  5. BZOJ 1260 - 区间dp

    Magic Door 题目大意: 给一个字符串,问需要至少覆盖多少次. 题目分析 区间dp: dp[i][j]表示达到i~j这个状态的最少覆盖次数,分两种情况: s[i] == s[j]: 此时内层可 ...

  6. 模块化模式与 OSGi

    模块化模式与 OSGi Android 模块化探索与实践 一.前言 万维网发明人 Tim Berners-Lee 谈到设计原理时说过:“简单性和模块化是软件工程的基石:分布式和容错性是互联网的生命.” ...

  7. BZOJ 2818 Gcd 线性欧拉筛(Eratosthenes银幕)

    标题效果:定整N(N <= 1e7),乞讨1<=x,y<=N和Gcd(x,y)素数的数(x,y)有多少.. 思考:推,. 建立gcd(x,y) = p,然后,x / p与y / p互 ...

  8. Quartz 在线Cron表达式

    Quartz自己配置Cron好麻烦,下面是一个在线Cron表达式生成器的网站,非常方便,现在使用Cron时基本上就直接用这个了. http://cron.qqe2.com/ Cron表达式 cronE ...

  9. Scala & IntelliJ IDEA环境搭建升级版:在JAVA中调用Scala的helloworld

    --------------------- 前言 --------------------- 项目关系,希望用Spark GraphX做数据分析及图像展示,但前提是得会spark:spark是基于sc ...

  10. Boost智能指针-基础知识

    简单介绍 内存管理一直是 C++ 一个比較繁琐的问题,而智能指针却能够非常好的解决问题,在初始化时就已经预定了删除.排解了后顾之忧.1998年修订的第一版C++标准仅仅提供了一种智能指针:std::a ...