我將所有現有的Silverlight應用程序UserControls轉換爲Pages,以便我可以使用Navigation Framework。SL 3導航無效!
無論如何,所以我創建了一個名爲MyFrame的UserControl,它將託管所有頁面。 在我App.xaml.cs我有以下的,以確保MyFrame時加載的應用程序加載:
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MyFrame();
}
我UriMapper類位於App.xaml中,看起來像下面這樣:
<navcore:UriMapper x:Key="uriMapper">
<navcore:UriMapping Uri="Login" MappedUri="Login.xaml">
</navcore:UriMapper>
在我的「MyFrame」課,我有以下
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<HyperlinkButton Tag="Login" Content="Login" Click="HyperlinkButton_Click" />
</StackPanel>
<StackPanel Orientation="Vertical">
<navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}" />
</StackPanel>
</StackPanel>
而且回調我HyperlinkButton的事件處理程序中,我有以下幾點:
private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
{
ContentFrame.Navigate(new Uri((sender as HyperlinkButton).Tag.ToString(), UriKind.Relative));
}
Login.xaml文件位於我的根文件夾(位於Project下)。此導航似乎不起作用! 我得到的例外讀取像這樣:
導航只支持到那些片段,或以「/」開始,或包含相對URI「;組分/」。 參數名稱:uri
登錄頁面無法加載。 Login.xaml沒有問題,因爲當我設置
this.RootVisual = new Login();
頁面加載就好了。
我也嘗試將HyperlinkButton的NavigateUri屬性設置爲「Login」。沒有雪茄。
我會感謝任何幫助!
感謝很多提前