0

私は WPF にかなり慣れていないので、「ウィジェット フレームワーク」と呼ぶものを作成したいと考えています。私のアプリには、ドラッグしてサイズ変更できる 1 つ以上の「ウィジェット」ユーザー コントロールを配置できるキャンバスを含むウィンドウがあります。すべてのウィジェットには共通の「クロム」があり、おそらく上部にボタンがあり、最大化/最小化、構成ダイアログを開くなどがあります。

私のwinform時代には、共通のUI要素を含む基本クラスのユーザーコントロールを作成し、各ウィジェットユーザーコントロールはこれから継承していましたが、WPFにはユーザーコントロールの継承に相当するものはないと思います。

だから私は私を始めるための指針を探しています。答えはテンプレートとユーザー コントロールの両方にありますか? コードのスニペットや例を教えていただければ幸いです。

私が探しているもののアイデアを得るには、Codeplex の「Chronos WPF」フレームワークを見てください - http://chronoswpf.codeplex.com/。それはウィジェット フレームワークであり、それ以上のものです - ウィジェットのものを取り除こうとしましたが、ソースは巨大な獣であり、複合アプリケーション フレームワークとも絡み合っています。残念ながら、それはもはや積極的に開発されていません。

4

1 に答える 1

1

これに対する考えられる MVVM ベースのソリューションは次のようになります。

  1. クロムを UserControl として作成し、アクションのために ChromeViewModel にバインドします
  2. クロム内では、ContentPresenter コントロールを使用します。このコントロールは、ChromeViewModel の Content プロパティにバインドされます。この Content プロパティは、ウィジェットの作成時に実行時に設定される WidgetViewModel である必要があります。
  3. DataTemplate の TargetType 属性を使用して、各 WidgetViewModel に関連付ける 1 つの DataTemplate を指定する必要があります (必ず独自のリソース ディクショナリ ファイルに配置してください)。
于 2012-05-25T17:10:37.767 に答える