我遇到了一个问题,就是我不能像大多数不熟悉这项技术的人那样在Silverlight中重定向我的页面。
我首先设计一个登录页面,如果密码正确,我希望它直接指向MainPage.xaml
正如你所看到的,我尝试过的方法已被评论已经无效。我在这个网页上搜索了一些关于这个问题的帖子但是我无法解决请帮助我。
当我尝试那个时;
Uri target = new Uri("MainPage",UriKind.Relative);
NavigationService.Navigate(target);
错误消息:Object reference not set to an instance of an object.
实际上我们和朋友找到了解决方案;
而不是指向网页,当代码进入if块我们正在用{this.Content = new MainPage();方法,它正在工作。但是System.Windows.Browser.HtmlPage.Window.Navigate(目标)这个正在指导我们在正常的html页面之外的同样的登录页面,如www.---.com。
答案 0 :(得分:0)
通常您需要使用NavigationService来执行此操作:
NavigationService.Navigate(new Uri("/MainPage", UriKind.Relative));
NavigationService是Page对象的一个属性,因此它将在Login code-behind中可用。
然而,在你提到你已经“完成了这个”后,我意识到了这个问题。 Silverlight Navigation使用Frame控件。此Frame控件位于MainPage.xaml中,用于默认项目。因此,您不是在框架内导航,而是希望将整个屏幕更改为不同的屏幕,而不需要在Silverlight中内置导航服务。
我建议您(a)将Login运行作为MainPage上Frame的页面(您可以根据用户是否经过身份验证加载或卸载顶部的链接)或(b)don' t使用导航作为应用程序的其余部分,并使用像Caliburn.Micro这样的框架来处理视图之间的所有导航。