2009-02-25 22 views
0

私は非常に新しいWPF、新しい約4時間です。私はASP.netとMasterpagesから来ています。WPF ControlTemplateどのように

私はすべてのウィンドウが同じに見えるようにテンプレートをウィンドウに使用できるコントロールテンプレートの例を見ていました。 Other post

私はどのように達成されているか、サンプルコードの最初から最後までの例を教えていただけますか?

第二部分:

はControlTemplateのは、WPFウィンドウのクライアントアプリケーションを構築するについて行くための最良の方法ですか? WPF Windowsアプリケーションの設計におけるベストプラクティスは何ですか?そこ

おかげ

答えて

1

は本当に建築家WPFのUIへの「最良の」方法ではありません。それはすべて、アプリケーションのユーザーエクスペリエンスに依存します。

非常にウェブのような経験をしたい場合は、おそらくページ構造を使用する方がよいでしょう。そうでない場合は、ウィンドウがあり、共通のヘッダーが必要な場合は、そのためのコントロールテンプレートを作成するだけです。たぶん別のウィンドウが必要なのかもしれないし、グリッドパネルのサブパーツに状態に応じてコンテンツを変更する必要があるかもしれません...あなたが望むクライアント体験のタイプに多かれ少なかれ適切なものを行うさまざまな方法があります。

MVC/MVVMデザインパターンの使用に関するいくつかのベストプラクティスがありますが、コントロールのスタイルとテーマを「最適な」方法ではありません。私はWPFをWinFormsのように新人に親しむとは考えていませんが、同時に長期的にはもっと強力なようです。

  • スタイル:これらは主にマウスカーソルロールのようなものをトリガするためのいくつかの非常に基本的なサポートとの基本的なコントロールと要素のルックアンドフィールに審美的な変化である何あなたを助けるかもしれないと、テーマのいくつかの基本的なレベルです。それらはウェブページ上のCSSに似ています。
  • コントロールテンプレート:実際にボタンをテキストボックスにすることができるように、コントロールを実際に再構成するスタイルのより重いバージョンです。ボタンのようなものが最も基本的な要素である論理的なレベルでスタイルが動作する場合、ボタンの境界線、背景、テキストなどが1つの原子部分ではなく別々の要素として見えるように、コントロールテンプレートをさらにコントロールにドリルダウンできます。
  • データテンプレート:リスト内のデータ項目の描画方法をカスタマイズするための、より集中したバージョンのコントロールテンプレート。たくさんの写真がある場合、リストボックスにファイル名が表示されないようにするには、画像そのものが必要です。データテンプレートを使用すると、このようなことを実現できます。

「すべてのウィンドウが同じに見えるようにする」と言えば、変更は単なる美的/外観(スタイル)に過ぎず、アイテムのコレクションの表示方法をカスタマイズすることです(データ/アイテムテンプレート)を使用するか、標準コントロールの外観や動作の仕方を変えるか、ページ上のコントロールのレイアウトが複数のウィンドウ/ページ(コントロールテンプレート)で同じであることを確認しますか?

最後に、リンク先の他の投稿の「終わりから終わりまで」は非常に簡単です。そこにコントロールテンプレートを置き、タグの下にTemplate = {StaticResource MyTemplateName}を追加するだけで、テンプレートが適用されます。 This article on MSDNは、テンプレート作成を制御するためのまともなイントロです。