Я преобразовал все свои существующие пользовательские элементы управления Silverlight в Pages, чтобы я мог использовать Navigation Framework.
В любом случае, поэтому я создал UserControl с именем MyFrame, в котором будут размещаться все страницы.В моем 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, которые являются фрагментами или начинаются с '/' или содержат '; component /'.Имя параметра: uri
Страница входа не загружается.С Login.xaml нет проблем, так как при установке
this.RootVisual = new Login();
страница загружается просто отлично.
Я также попытался установить атрибут NavigateUri для HyperlinkButton в значение «Login».Никакой сигары.
Буду признателен за любую помощь!
Заранее большое спасибо