2012-03-13 50 views
0

我有一個我的問題是我不能像Silverlight中那些不熟悉這項技術的大多數人一樣在Silverlight中重定向我的頁面。項目頁面之間的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(目標)這一個是指導我們相同的登錄頁面或網頁,如www.---.com以外的正常的HTML頁面。

回答

0

通常,你需要使用的NavigationService做到這一點:

NavigationService.Navigate(new Uri("/MainPage", UriKind.Relative)); 

的的NavigationService是Page對象上的屬性,因此它會在登錄使用代碼隱藏。

但是,在你提到你已經「已經完成了」之後,我意識到了這個問題。 Silverlight導航使用框架控件。此Frame控件位於默認項目的MainPage.xaml中。因此,您不是在框架內進行導航,但是您希望將整個屏幕更改爲不同的屏幕,並且不需要Silverlight內置的導航服務。

我建議你或者(a)將Login作爲頁面放在MainPage上的Frame中(如果用戶通過身份驗證,則可以加載或卸載頂層鏈接)或者(b)不會爲應用程序的其餘部分使用導航,並使用像Caliburn.Micro這樣的框架來處理視圖之間的所有導航。

+0

我已經嘗試從第一個地方我指出我的屏幕圖片。 – 2012-03-13 23:39:46

+0

根據此信息更新。我假設你已經修改了App.xaml.cs以將Application RootVisual設置爲新的Login視圖。 – Bryant 2012-03-13 23:47:24

+0

實際上並不是我的App.xaml是this.RootVisual = new Login();在我的登錄頁面代碼去時,如果塊我更改頁面的內容,所以它是一種適合我的目標現在。但是,仍然需要一些讚揚它。 – 2012-03-14 00:18:06