• <i id='zl3XQ'><tr id='zl3XQ'><dt id='zl3XQ'><q id='zl3XQ'><span id='zl3XQ'><b id='zl3XQ'><form id='zl3XQ'><ins id='zl3XQ'></ins><ul id='zl3XQ'></ul><sub id='zl3XQ'></sub></form><legend id='zl3XQ'></legend><bdo id='zl3XQ'><pre id='zl3XQ'><center id='zl3XQ'></center></pre></bdo></b><th id='zl3XQ'></th></span></q></dt></tr></i><div id='zl3XQ'><tfoot id='zl3XQ'></tfoot><dl id='zl3XQ'><fieldset id='zl3XQ'></fieldset></dl></div>

    <small id='zl3XQ'></small><noframes id='zl3XQ'>

  • <tfoot id='zl3XQ'></tfoot>

        • <bdo id='zl3XQ'></bdo><ul id='zl3XQ'></ul>
      1. <legend id='zl3XQ'><style id='zl3XQ'><dir id='zl3XQ'><q id='zl3XQ'></q></dir></style></legend>

        Siliverlight 3 用户控件之间的导航?

        时间:2023-08-28
      2. <tfoot id='xbYF5'></tfoot>

            <small id='xbYF5'></small><noframes id='xbYF5'>

                  <tbody id='xbYF5'></tbody>
                • <bdo id='xbYF5'></bdo><ul id='xbYF5'></ul>
                • <legend id='xbYF5'><style id='xbYF5'><dir id='xbYF5'><q id='xbYF5'></q></dir></style></legend>
                  <i id='xbYF5'><tr id='xbYF5'><dt id='xbYF5'><q id='xbYF5'><span id='xbYF5'><b id='xbYF5'><form id='xbYF5'><ins id='xbYF5'></ins><ul id='xbYF5'></ul><sub id='xbYF5'></sub></form><legend id='xbYF5'></legend><bdo id='xbYF5'><pre id='xbYF5'><center id='xbYF5'></center></pre></bdo></b><th id='xbYF5'></th></span></q></dt></tr></i><div id='xbYF5'><tfoot id='xbYF5'></tfoot><dl id='xbYF5'><fieldset id='xbYF5'></fieldset></dl></div>
                  本文介绍了Siliverlight 3 用户控件之间的导航?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我刚刚开始掌握来自 ASP.NET 和 Flex 的 silverlight 3.

                  Im just starting to get to grips with silverlight 3, coming from ASP.NET and Flex.

                  我已经按照这里的新导航教程阅读了身份验证和角色管理教程.

                  I have followed the new navigation tutorial here and read through the authentication and role management tutorials also.

                  所以,我有一个主页,它有一个框架、网格内部和几个视图.这些都是可导航的并且工作正常.我认为这个主页是我的小应用程序的母版页.

                  So, i have a main page, which has a frame, inside of the grid, and several views. These are all navigatable and working fine. I see this main page as kind of a master page to my little application i have i mind.

                  所以知道我想要一个 login.xaml 用户控件.这将处理所有登录,一旦通过身份验证,我想导航到 MainPage,并使用它的框架从那里开始.

                  So know I want to have a login.xaml UserControl. This will handle all login and once authenticated I want to navigate to the MainPage, and the use its frame to go from there.

                  我不只是想简单地在我的框架中使用登录作为一个单独的页面,因为我希望登录使用与应用程序的其余部分不同的网格,并且也是独立的.

                  I dont just want to simply use login as a seprate page within my frame as I want the login to use a different grid to the rest of the app, and also to be separate.

                  那么我将如何从一个用户控件(登录)导航到另一个(主)?

                  So how would I navigate from one user control (Login) to another (Main) ?

                  我试过了

                   private void btnLogin_Click(object sender, RoutedEventArgs e)
                      {
                          //TO - DO: All the auth work, just want navigation sorted first
                  
                          this.Visibility = Visibility.Collapsed;
                          App.Current.RootVisual = new MainPage(); 
                      }
                  

                  没有运气.我也尝试过初始化一个新的 main 并设置它的可见性,但这当然不起作用.

                  With no luck. Ive also tried just init'n a new main and setting its Visibility but this of course doesnt work.

                  我是否以正确的方式处理这个问题?

                  Am I even approaching this in the correct way?

                  非常感谢.

                  编辑 - 进一步挖掘之后,这个 看起来像是一种可以做我所追求的方法,但它确实感觉有点骇人听闻!这是 silverlight 3 的建议方式吗?再次感谢

                  Edit - Ok after digging a little further, this looks like an approach that will do what im after, but it does feel a little hackish! Is this the suggested way for siverlight 3? Thanks Again

                  推荐答案

                  我通常做的是创建一个 System.Windows.Controls.Navigation 类型的MainPage.xaml".这被分配给我的应用程序的 RootVisual 属性;它几乎是空的,除了一个导航框架:

                  What I've usually done is to create a "MainPage.xaml" which is of type System.Windows.Controls.Navigation. That gets assigned to the RootVisual property of my application; it's pretty much empty, except for a navigation frame:

                  <navigation:Page 
                  x:Class="Client.MainPage" 
                  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
                  xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
                  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                  mc:Ignorable="d" 
                  d:DesignWidth="400" 
                  d:DesignHeight="400" MinWidth="700" MinHeight="480"
                  HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                  Title="Main SlideLinc Page">
                  <Grid x:Name="LayoutRoot">
                      <navigation:Frame x:Name="rootFrame" />
                  </Grid>
                  </navigation:Page>
                  

                  然后我使用rootFrame"导航框架来处理我所有的导航需求,例如,使用来自静态 NavigationManager 类的这些方法:

                  Then I use the "rootFrame" navigation frame to handle all my navigation needs, e.g., with these methods from a static NavigationManager class:

                      public static void Navigate(string url, Action<Exception, UIElement> callback)
                      {
                          Navigate(new Uri(url, UriKind.RelativeOrAbsolute), callback);
                      }
                  
                      public static void Navigate(Uri uri, Action<Exception, UIElement> callback)
                      {
                          if (rootFrame == null)
                          {
                              Logger.LogMessage("Can't use navigation, because rootFrame is null");
                              ErrorMessageBox.Show(ClientStrings.NavigationFailed);
                          }
                          else
                          {
                              NavigatedEventHandler successHandler = null;
                              NavigationFailedEventHandler failureHandler = null;
                              successHandler = (s, e) =>
                                   {
                                       rootFrame.Navigated -= successHandler;
                                       rootFrame.NavigationFailed -= failureHandler;
                                       if (callback != null)
                                       {
                                           callback(null, e.Content as UIElement);
                                       }
                                   };
                              failureHandler = (s, e) =>
                                  {
                                      rootFrame.Navigated -= successHandler;
                                      rootFrame.NavigationFailed -= failureHandler;
                                      if (callback != null)
                                      {
                                          callback(e.Exception, null);
                                      }
                                  };
                              rootFrame.Navigated += successHandler;
                              rootFrame.NavigationFailed += failureHandler;
                              rootFrame.Navigate(uri);
                          }
                      }
                  

                  所以在你的情况下,你可以像这样使用它:

                  So in your case, you might use it like:

                  NavigationManager.Navigate(new Uri("/Login.xaml", UriKind.Relative), null);
                  

                  或者:

                  NavigationManager.Navigate(new Uri("/Home.xaml", UriKind.Relative), (error, element) => InitializeElement(element));
                  

                  这篇关于Siliverlight 3 用户控件之间的导航?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:寻找适用于桌面应用程序的 Visual Studio 工具箱样 下一篇:WinRT - 如何从导航历史记录中忽略或删除页面

                  相关文章

                  最新文章

                  <legend id='C2rn4'><style id='C2rn4'><dir id='C2rn4'><q id='C2rn4'></q></dir></style></legend>
                  <tfoot id='C2rn4'></tfoot>

                    <small id='C2rn4'></small><noframes id='C2rn4'>

                      <bdo id='C2rn4'></bdo><ul id='C2rn4'></ul>
                    1. <i id='C2rn4'><tr id='C2rn4'><dt id='C2rn4'><q id='C2rn4'><span id='C2rn4'><b id='C2rn4'><form id='C2rn4'><ins id='C2rn4'></ins><ul id='C2rn4'></ul><sub id='C2rn4'></sub></form><legend id='C2rn4'></legend><bdo id='C2rn4'><pre id='C2rn4'><center id='C2rn4'></center></pre></bdo></b><th id='C2rn4'></th></span></q></dt></tr></i><div id='C2rn4'><tfoot id='C2rn4'></tfoot><dl id='C2rn4'><fieldset id='C2rn4'></fieldset></dl></div>