work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Win 8 页面传参

Posted on 2012-12-07 16:11  work hard work smart  阅读(357)  评论(0编辑  收藏  举报

Win 8 中,页面参数递参数是通过调用Frame类的Navigate方法,它有两个重载,其中一个是可以传参数的。

1、界面设计如下:

    <Grid Background="LightCoral">
        <TextBlock HorizontalAlignment="Left" Margin="277,51,0,0" TextWrapping="Wrap" Text="学号:" FontSize="30" VerticalAlignment="Top"/>
        <TextBlock HorizontalAlignment="Left" Margin="277,106,0,0" TextWrapping="Wrap" Text="姓名:" FontSize="30" VerticalAlignment="Top"/>
        <TextBox x:Name="StuNum" HorizontalAlignment="Left" Margin="386,51,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="148"/>
        <TextBox x:Name="StuName" HorizontalAlignment="Left" Margin="386,106,0,0" TextWrapping="Wrap"  VerticalAlignment="Top" Width="148"/>
        <Button x:Name="OK" Content="确定" HorizontalAlignment="Left" Margin="277,172,0,0" VerticalAlignment="Top" Click="OK_Click"/>
    </Grid>

 

2、设计了一个Student类,方便传递参数

    public class Student
    {
        public string stuNum { get; set; }
        public string StuName { get; set; }
    }

 

3、关键代码如下: 给参数赋值,然后通过Frame.Navigate方法,传递参数,并导航到GetParameters.xaml页面中。

        private void OK_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(StuName.Text) == true 
                || string.IsNullOrEmpty(StuNum.Text) == true) 
                return;

            Student stu = new Student()
            {
                stuNum =  StuNum.Text,
                StuName = StuName.Text
            };

            Frame CurFrame =  Window.Current.Content as Frame;
            if (CurFrame != null)
            {
                CurFrame.Navigate(typeof(GetParameters), stu);
            }     
        }

 

4、获得参数。在GetParameters.xaml页面中显示参数。

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            Student stu = e.Parameter as Student;
            if (stu != null)
            {
                ShowMsgTbk.Text = " [获得参数页] -> " + "学号: " + stu.stuNum + " 姓名: " + stu.StuName;
            }
        }

5、效果图

图1

 

图2.

总结:Win8 中页面传参可以通过Frame.Navigate方法来实现。