2011-02-01 90 views
0

有人可以幫助我與childwindow和導航?Silverlight:問題Childwindow和導航框架

我從代碼中創建一個childwindow並設置爲

ChildWindow CW = new ChildWindow(); 
CW.Content = new MainPageMenu(param1); 

這裏的「MainPageMenu」本身就是一個Silverlight頁面其內容與「導航:相框」

在構造函數中,我瀏覽到各種根據「param1」的頁面。

當我導航到所需的頁面時,ie地址欄顯示更新的uri。

它應該表明嗎?當頁面在兒童窗口中導航......?

這適用於第一次。一旦我關閉子窗口並重新打開差異「param1」導航到其他頁面

它永遠不會被導航.. !!!它顯示在同一頁面導航到第一個電話...

沒有錯誤的線 - 在構造

this.ContentFrame.Navigate(u); 

這是一個導航框架中的錯誤,或者我應該用別的方法來實現這個嗎?

請幫忙。

+0

你會得到什麼錯誤? – decyclone 2011-02-01 13:34:03

回答

1

我看你已經知道JournalOwnership是這裏的關鍵。但僅僅爲了更多的背景,所以這不是更多的魔法和更多的算法,以下是導航框架如何根據Frame.JournalOwnership設置爲什麼來計算是否與瀏覽器日誌集成。

JournalOwnership.Automatic(默認值) - 如果Frame是「頂級」Frame,它將使用瀏覽器日誌進行導航。如果不是,它不會。 「頂級」意味着,如果它沿着視覺樹行走,它沿途不會找到任何其他Frame

JournalOwnership.OwnsJournal - Frame將始終擁有自己的日記,並且不會嘗試與瀏覽器的日記交互。

JournalOwnership.UsesParentJournal - Frame將始終與瀏覽器集成。如果它不是頂級Frame,則會導致拋出異常。

那麼,什麼是關於ChildWindow有趣的是,當Frame走到可視化樹,看它是否是一個「頂級」 Frame,也不會找到一個(因爲Popup沒有以同樣的方式植根於可視化樹,並且ChildWindow使用Popup)。因此,它會認爲它是最高級的(在這種情況下,這可能不是正確的,但它還能做什麼?),因此它將與瀏覽器日誌集成。