WPF UI を設計するための "最善の" 方法は実際にはありません。それはすべて、アプリケーションのユーザー エクスペリエンスに依存します。
非常に Web に似たエクスペリエンスが必要な場合は、おそらくページ構造を使用する方が適切です。それ以外の場合、ウィンドウはあるが共通のヘッダーが必要な場合は、そのためのコントロール テンプレートを作成するだけでよいでしょう。別のウィンドウが必要な場合もあれば、グリッド パネルのサブ部分の内容を状態に応じて変更する必要がある場合もあります。必要なクライアント エクスペリエンスのタイプに多かれ少なかれ適していることを行うには、さまざまな方法があります。
MVC/MVVM デザイン パターンの使用に関するベスト プラクティスはいくつかありますが、コントロールのスタイルとテーマを設定する "最善の" 方法はありません。私は、WPF が WinForms ほど新規参入者に優しいとは考えていませんが、同時に、長期的にははるかに強力に思えます。あなたを助けるかもしれないのは、テーマのいくつかの基本的なレベルです:
- スタイル: これらは主に、基本的なコントロールと要素のルック アンド フィールに対する審美的な変更であり、マウス カーソルのロールオーバーなどをトリガーするための非常に基本的なサポートが含まれています。これらは Web ページの CSS に似ています。
- コントロール テンプレート: これらは、実際にコントロールを再構成して、たとえばボタンの内部にテキスト ボックスを含めることができる、より重いバージョンのスタイルです。ボタンのようなものが最も原子的な要素である論理レベルでスタイルが機能する場合、コントロール テンプレートは、ボタンの境界線、背景、テキストなどを 1 つの原子的な部分ではなく個別の要素として表示するように、さらにコントロールにドリルダウンできます。
- データ テンプレート: リスト内のデータ項目の描画方法をカスタマイズするための、より焦点を絞ったバージョンのコントロール テンプレートです。ファイル名をリストボックスに表示したくない写真がたくさんある場合は、画像自体が必要です。データ テンプレートを使用すると、このようなことを実現できます。
したがって、「すべてのウィンドウの外観を同じにする」と言うときは自問する必要があります。変更は単なる美的/外観 (スタイル)、アイテムのコレクションの表示方法のカスタマイズ (データ/アイテム テンプレート)、または方法の完全な変更を意味するのでしょうか?標準コントロールの外観と動作、またはページ上のコントロールのレイアウトが複数のウィンドウ/ページ (コントロール テンプレート) で同じであることを確認しますか?
最後に、リンク先の他の投稿の「端から端まで」は非常に単純です。そこでコントロール テンプレートを取得し、タグの下に Template={StaticResource MyTemplateName} を追加するだけで、テンプレートが適用されます。MSDN のこの記事は、テンプレートを制御するための適切なイントロです。