• Silverlight学习:Silverlight页面跳转


    一、Frame框架跳转的运用:

      新建一个MainPage.xaml页面,输入以下代码:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    <StackPanel>
                <StackPanel Orientation="Horizontal" Background="WhiteSmoke">
    
                    <HyperlinkButton Content="页面1" FontSize="14" NavigateUri="/Page1.xaml" TargetName="tgFrame" />
    
                    <HyperlinkButton Content="页面2" FontSize="14" NavigateUri="/Page2.xaml" TargetName="tgFrame"/>
    
                </StackPanel>
                <navigation:Frame x:Name="tgFrame" FontSize="14" Source="MainPage.xaml" Margin="2" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"/>
    
            </StackPanel>
    
     

      再新建两个页面,分别为:Page1.xaml,Page2.xaml,在Page1.xaml中输入以下代码:

              <TextBlock Text="这里是页面1的内容!"/>

      再在Page2.xaml中输入以下代码:

        <TextBlock Text="这里是页面2的内容!"/>

      完成!

      二、XAML页面间的跳转:

      可以先在App.xaml后台代码中定义一个对象:

      Grid rootGrid = new Grid();

      同时在App.xaml后台代码中新增一个方法:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    ///////////////
    /// <summary>
    /// 页面跳转
    /// </summary>
    /// <param name="usercontrol"></param>
    public static void RedirectTo(UserControl usercontrol)
    {
    App app = (App)Application.Current;
    app.rootGrid.Children.Clear();
    app.rootGrid.Children.Add(usercontrol);
    }
    
    然后将App.xaml中的以下方法修改为如下代码:
    
     private void Application_Startup(object sender, StartupEventArgs e)
             { 
                   this.RootVisual = rootGrid;
                   rootGrid.Children.Add(new MainPage());
             }
    
    在以后的Xaml页面的跳转Button响应事件中,直接通过以下方式处理:
    App.RedirectTo(new MyXXXaml());
    
    三、XAML页面跳转到aspx(或html)页面,在响应事件中键入以下代码即可:
    
         HtmlWindow html = HtmlPage.Window;
         html.Navigate(new Uri("Default.aspx", UriKind.Relative));
    

      在以后的Xaml页面的跳转Button响应事件中,直接通过以下方式处理:

     

      App.RedirectTo(new MyXXXaml());

      三、XAML页面跳转到aspx(或html)页面,在响应事件中键入以下代码即可:

      HtmlWindow html = HtmlPage.Window;

      html.Navigate(new Uri("Default.aspx", UriKind.Relative));

      四、页面传值(转载):

      关于页面传值我仅仅说一下我的方式,当让网上也有其他的关于页面之间传值的方法。主要是使用独立存储的IsolatedStorageSettings对象,首先在UserControl中创建对象:

      private IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings;然后在Button事件中加入如下代码,用于传值:

      if (!appSettings.Contains("Page2"))

      appSettings.Add("Page2", "UserName");

      OK了,在目标页面获取值的方式就简单了.

      if (appSettings.Contains("Page2"))

      txbShowvalue.Text = "User Name: " + appSettings["Page2"].ToString();

      需要注意的一点是这个获取值的代码不要写在页面的构造函数里面,有可能不会触发,原因是在上面对象已经保存在内存中了,但是会触发Loaded事件,因此可以把代码放到这个事件里面。

  • 相关阅读:
    Python合集之面向对象(六)
    Python合集之面向对象(五)
    Python合集之面向对象(四)
    Python合集之面向对象(三)
    Python合集之面向对象(二)
    Python合集之面向对象(一)
    Windows中杀死占用某个端口的进程
    docker mysql 中文乱码问题
    springboot 整合 mybatis
    elasticsearch 学习
  • 原文地址:https://www.cnblogs.com/zhijianliutang/p/2250586.html
Copyright © 2020-2023  润新知