2009-06-08 7 views
2

私は現在、デフォルトのファイルpage.xamlをロードしていますが、そのページに別のxamlファイルからコンテンツをロードしています。それぞれの "ページ"が変更されると、別のxamlファイルからコンテンツをロードするだけです。Silverlightアプリケーションの「ページ」をどのように切り替えるのですか?

例:this.Content = new StartPage();

私はコンテンツを変更する方法のためにいくつかの構文上の問題にぶち当たっていますが、これを達成するための決定的な答えがあるかどうか疑問に思っていましたか?例えば

、ユーザーのキーストロークをキャプチャしようとしたとき、私は普通だろう。

this.Keydown + =新しいKeyEventHandler(this_KeyDown)。

でも、私の状況ではイベントハンドラは起動しません。だから、私はキーストロークの問題を再訪する前に、私のコンテンツ交換のアプローチに新しいアプローチを探しています。

+0

Keydownの問題に関する別の質問を作成すると考えられます。ナビゲーションとは関係ないようです。 –

答えて

1

Silverlight 3を使用してみましたか?これには新しいページナビゲーション機能があります。 Silverlight 3 Navigation

0

コンテンツの切り替えが進む限り、私はいつもあなたが質問で提案したことをしてきました。通常は、アプリケーションのフレーム(通常は私のためのグリッド)を持つMainPage.xamlを作成します。グリッド内のセルの1つは、アプリのコンテンツ領域と見なされます。ユーザーがナビゲーションと見なすアクションを実行すると、私はMyUserControl.xamlのようなファイルであるページの新しいインスタンスを作成し、それをGridの適切なコンテンツセルに追加します。 MainPageは、アプリケーションの稼働中に移動し、ナビゲーションを支援します。

好きなものを使い、ブラウザベースの戻る/進むボタンを利用したい場合は、CorrelのようにSL3のナビゲーションを調べることができます。

0

あなたがしていることの大きな問題は、フレームワーク要素を作成してコードビハインドにプラグインすることで、ジャーナル化が自動的に行われないということです。つまり、ブラウザの前後の機能を失うことになります。ページを交換するときに手作業でジャーナル化することができますが、これはナビゲーションアプローチを働かせるための単純なハックです。

プリズム(www.compositewpf.codeplex.com/)をご覧ください。具体的には、GUIデザインのMVVM方式です。後で多くの時間を節約できます。あなたがMVVMを見ているときにハードコアに行く必要はないことを覚えておいてください。もしあなたが1人の男性バンドであれば、常に「ダイナミック」な機能をたくさん取り除くことができます。

また、銀色の3にスワップし、あなたが傾けない場合は、helix 0.3を見てください。それは、より多くのASP指向のナビゲーションへのアプローチを提供します。リンクは本当に良い出発点を提供しています.3部記事ですが、3つすべてを読んでサンプルアプリケーションをダウンロードして理解することをお勧めします。

あなたの質問には本が書かれている可能性がありますが、これで十分です。

関連する問題