zoukankan      html  css  js  c++  java
  • windows phone8.1:页面导航详解

    小梦给大家带来windows phone 8.1应用开发实战教程,分享自己学习,开发过程中的经验和技巧。

    今天给大家分享windows phone 8.1页面导航相关知识。涉及知识点如下:

    1. 页面一导航到页面二
    2. 页面一带一个参数导航到页面二
    3. 页面一带多个参数导航到页面二
    4. 重写后退键,使得后退键可以返回前一页面。注:后退键默认是退出程序。
    5. 清楚后退堆栈历史。

    本例共有三个页面:MainPage,BlankPage1,BlankPage2。

    MainPage,BlankPage1的前台代码如下:

    
    

    <Grid>
    <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="80"/>
    <RowDefinition Height="80"/>
    <RowDefinition Height="80"/>
    <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <TextBlock Text="这是主页" Grid.Row="0" FontSize="40"></TextBlock>
    <StackPanel Grid.Row="1" Orientation="Horizontal">
    <TextBlock Text="网站:" FontSize="40" Margin="0,0,0,30" Width="88"/>
    <TextBox x:Name="textName" Height="40" Margin="0,10,0,0" Width="260" />
    </StackPanel>
    <StackPanel Grid.Row="2" Orientation="Horizontal">
    <TextBlock Text="网址:" FontSize="40" Margin="0,0,0,30" Width="88"/>
    <TextBox x:Name="textAdress" Height="40" Margin="0,10,0,0" Width="260" />
    </StackPanel>
    <StackPanel Grid.Row="3" Orientation="Horizontal">
    <TextBlock Text="内容:" FontSize="40" Margin="0,0,0,30" Width="88"/>
    <TextBox x:Name="textContent" Height="40" Margin="0,10,0,0" Width="260" />
    </StackPanel>
    <Button Content="去第二页" Grid.Row="4" Margin="122,147.667,0,147" Click="Button_Click"/>

    
    

    </Grid>

     

    BlankPage2的前台代码如下:

     1 <Grid>
     2 <Grid.RowDefinitions>
     3 <RowDefinition Height="Auto"/>
     4 <RowDefinition Height="80"/>
     5 <RowDefinition Height="*"/>
     6 </Grid.RowDefinitions>
     7 <TextBlock Text="这是第三页" Grid.Row="0" FontSize="40"></TextBlock>
     8 <TextBox Name="text" Grid.Row="1" Height="60" Margin="0,9.667,10,0"/>
     9 <Button Content="我要直接回主页" Grid.Row="2" Margin="122,147.667,0,147" Click="Button_Click"/>
    10 </Grid>

    mainpage的后台关键代码如下:

     1 private void Button_Click(object sender, RoutedEventArgs e)
     2 
     3 {
     4 Website web=new Website()
     5 {
     6 Name=this.textName.Text,
     7 Address=this.textAdress.Text,
     8 Content=this.textContent.Text
     9 };
    10 Frame.Navigate(typeof(BlankPage1),web); //对应知识点3,即传递多个参数时建立一个对象,传递对象即可。
    11 }

    blankpage1的后台关键代码如下:

     1 protected override void OnNavigatedTo(NavigationEventArgs e)//重写OnNavigatedTo接受从maingape页面传递来的参数。
     2 {
     3 var web = (Website)e.Parameter;
     4 this.textName.Text = web.Name;
     5 this.textAdress.Text = web.Address;
     6 this.textContent.Text = web.Content;
     7 HardwareButtons.BackPressed += HardwareButtons_BackPressed;//注册重写后退按钮事件
     8 }
     9 
    10 private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)//重写后退按钮,如果要对所有页面使用,可以放在App.Xaml.cs的APP初始化函数中重写。
    11 {
    12 e.Handled = true;
    13 
    14 if (Frame.CanGoBack)
    15 Frame.GoBack();
    16 }
    17 
    18 private void Button_Click(object sender, RoutedEventArgs e)//传递单个参数
    19 
    20 {
    21 Frame.Navigate(typeof(BlankPage2), "我是从第二页传送过来的!!");
    22 }

    blankpage2的关键后台代码:

     1 protected override void OnNavigatedTo(NavigationEventArgs e)
     2 {
     3 text.Text = (string)e.Parameter;
     4 Frame.BackStack.RemoveAt(Frame.BackStackDepth - 1);//对应知识点5,清楚后退堆栈的最后一条历史,本例中即第二页,删除后即可从第三页直接到主页。
     5 }
     6 
     7 private void Button_Click(object sender, RoutedEventArgs e)
     8 {
     9 Frame.GoBack();
    10 }

    运行效果:

    windows Phone8.1开发页面导航 windows phone 8.1开发教程 windows phone8.1应用开发

    源代码下载:

    页面导航源代码

    PS:希望热爱windows phone开发的大神,小白能来编程小梦一起多多交流,windows Phone开发者本身就比较少,小梦希望大家有一个交流的平台,欢迎大家光临!

  • 相关阅读:
    前端JS的服务订阅&服务发布
    身份证号码校验解释
    基于密码强度检测算法分析及实现
    身份证号码的正则表达式
    如何安装 Sublime text 编辑器相关的插件
    关于GatewayClient 介绍和使用
    GatewayWorker与ThinkPHP等框架结合
    如何知道使用的GatewayWorker版本号?
    Hibernate HQL
    Hibernate 一对一
  • 原文地址:https://www.cnblogs.com/bcmeng/p/3776624.html
Copyright © 2011-2022 走看看