いつだったか、悩んでいてやり方がわからなかったけど、今日やり方見つけたのでメモです。
SilverlightClassLibrary1という名前のクラスライブラリにあるPage1.xamlへ遷移するときのURIは以下のような感じで指定するといけます。
var uri = new Uri("/SilverlightClassLibrary1;component/Page1.xaml", UriKind.Relative); f.Navigate(uri);
形式としては
/アセンブリ名;component/パス
という形になります。
毎回毎回/アセンブリ名;component/....と指定するのはめんどくさいのでUriMapperあたりにエイリアスをつけておくとらくだと思います。
例:/SL1/****というURIを/SilverlightClassLibrary1;component/****に紐付ける場合
<my:Frame x:Name="f"> <my:Frame.UriMapper> <uriMapper:UriMapper> <uriMapper:UriMapping Uri="/SL1/{path}" MappedUri="/SilverlightClassLibrary1;component/{path}" /> </uriMapper:UriMapper> </my:Frame.UriMapper> </my:Frame>
こうしておくと、ナビゲーションのときに指定するURIは、シンプルになる。
var uri = new Uri("/SL1/Page1.xaml", UriKind.Relative); f.Navigate(uri);