Вы можете создать Действие и перетащить его поверх элемента управления, который вы хотите сделать навигацией, как это:
public class NavigateAction : TriggerAction<DependencyObject>
{
public Uri Uri
{
get;
set;
}
protected override void Invoke(object parameter)
{
var frame = FindContainingFrame(AssociatedObject);
if(frame == null)
throw new InvalidOperationException("Could not find the containing Frame in the visual tree.");
frame.Navigate(Uri);
}
protected static Frame FindContainingFrame(DependencyObject associatedObject)
{
var current = associatedObject;
while(!(current is Frame))
{
current = VisualTreeHelper.GetParent(current);
if(current == null)
return null;
}
return (Frame)current;
}
}
Теперь вам просто нужно перетащить его и привязать к целевой странице. Кстати, это верно для SL4, никогда не пробовал на SL3. и URI работает в форме: " / SilverlightApplication1; component / Page1.xaml " или с UriMapping на фрейме.