2009-09-30 65 views

回答

7

您是否嘗試過的NavigationService?

this.NavigationService.Navigate(new Uri(「Details.xaml」,UriKind.Relative));

+0

是的,只是告訴我,頁面不存在.......當它。 – Goober

+0

在Silverlight中,URI尊崇與XAP相關。 Uri的詳細信息頁面(如果它在你的項目的根目錄中)應該是'new Uri(「/ Details.xaml」,UriKind.Relative) –

+0

我告訴你100%這是行不通的。全新的Silverlight業務應用程序模板,試圖導航到字面上任何頁面不能使用該方法。 – Goober

7

C#:

this.navContent.Navigate(new Uri("Welcome", UriKind.Relative)); 

XAML:

<navigation:Frame 
    x:Name="navContent" 
    HorizontalContentAlignment="Stretch" 
    VerticalContentAlignment="Stretch" 
    Source="Welcome"> 
    <navigation:Frame.UriMapper> 
     <uriMapper:UriMapper> 
      <uriMapper:UriMapping Uri="Welcome" MappedUri="/Views/Welcome.xaml" /> 
      <uriMapper:UriMapping Uri="Profile" MappedUri="/Views/Profile.xaml" /> 
      <uriMapper:UriMapping Uri="Details/{id}" MappedUri="/Views/Details.xaml?photoid={id}" /> 
     </uriMapper:UriMapper> 
    </navigation:Frame.UriMapper> 
</navigation:Frame> 

即使你的 「詳細信息」 頁面可以被映射(不管你說什麼。)

7

C# App.Current.Host。 NavigationState =「/歡迎」;

XAML

+0

This View great ViewModel –

+0

This is working !!!!!! – 1myb

2

嘗試使用此。這對我有效。 ((System.Windows.Controls.Frame)(this.Parent)).Navigate(new Uri(「/ Import」,UriKind.Relative));

5

最好的解決辦法是:

將此代碼添加到您的App.xaml.cs:

private static Grid root; 

private void Application_Startup(object sender, StartupEventArgs e) 
{ 
    root = new Grid(); 
    root.Children.Add(new MainPage()); 

    this.RootVisual = root; 
} 

public static void Navigate(UserControl newPage) 
{ 
    UserControl oldPage = root.Children[0] as UserControl; 

    root.Children.Add(newPage); 
    root.Children.Remove(oldPage); 
} 

,然後在頁面之間進行導航,你只需要調用:

App.Navigate(new OtherSamplePage()); 
+0

我一直在尋找這個答案+3,如果我可以 – MJ33