Вы должны использовать элемент управления Frame из Navigation Framework (Silverlight Takeit).тогда вы можете попробовать такой подход
<Button Content="Click">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:EventTrigger.Actions>
<actions:NavigateAction UriPath="/Home" TargetName="MainFrame" />
</i:EventTrigger.Actions>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<navigation:Frame x:Name="MainFrame"
UriMapper="{StaticResource UriMapper}" />
и соответствующий код для NavigateAction:
public class NavigateAction : TargetedTriggerAction<Frame>
{
public static readonly DependencyProperty UriPathProperty =
DependencyProperty.Register("UriPath", typeof(string), typeof(NavigateAction), null);
public string UriPath
{
get { return (string)GetValue(UriPathProperty); }
set { SetValue(UriPathProperty, value); }
}
protected override void Invoke(object parameter)
{
Target.Navigate(new Uri(UriPath, UriKind.RelativeOrAbsolute));
}
}
Кроме того, вы всегда должны использовать UriMapper.Это хорошая практика:
<Application.Resources>
<sdk:UriMapper x:Key="UriMapper">
<sdk:UriMapping MappedUri="/Views/TasksView.xaml" Uri="" />
<sdk:UriMapping MappedUri="/Views/{view}View.xaml" Uri="/{view}" />
</sdk:UriMapper>
</Application.Resources>