0
我找到的Silverlight框架控制可以說,第1頁,在一個面板Treeview
而在另一個面板Frame
一個Silverlight 4應用程序導航到其他頁面。 當Treeview
節點被選擇它觸發在UserControl
CS文件,它是後面的代碼爲Treeview
的事件。 如何調用第1頁的Frame
導航到其他URI?從另一個CS文件
我找到的Silverlight框架控制可以說,第1頁,在一個面板Treeview
而在另一個面板Frame
一個Silverlight 4應用程序導航到其他頁面。 當Treeview
節點被選擇它觸發在UserControl
CS文件,它是後面的代碼爲Treeview
的事件。 如何調用第1頁的Frame
導航到其他URI?從另一個CS文件
最簡單的方法是指定一個Name
到Frame
和通過自動生成字段訪問它。
如果我給你的權利,這應該工作:
用戶控制的XAML:用戶控制的
<UserControl>
<StackPanel>
<StackPanel>
<TreeView SelectionChanged="treeView_SelectionChanged"/>
</StackPanel>
<StackPanel>
<!-- Additional Frame setup omitted for brevity -->
<Frame x:Name="frame"/>
</StackPanel>
</StackPanel>
</UserControl>
代碼隱藏:
void treeView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var targetUri = this.GetTargetUriFromSelectedItem(e); // TODO: implement your target uri retrieval logic
this.frame.Navigate(targetUri);
}
我做了以下內容到樹形視圖和框架所在的主頁URL:MainPage rootPage = App.Current.RootVisual as MainPage;然後string url = HtmlPage.Document.DocumentUri.ToString();問題是我想在主頁上有一個框架導航某處。我不想導航到主頁我希望主頁myframe導航到框架內的頁面。不知道如何找到框架控制? – rbucha
@rbucha按照我的示例:設置'X:NAME = 「框架」'您'Frame'然後'rootPage.frame'將是框架。但是,這是一個非常糟糕的設計:MainPage的部分不應直接與其他部分交互。更好的方法包括在用戶控件上引發事件並在MainPage上處理它們或使用MVVM模式。 –