2011-10-28 6 views
1

私は、コントロール(このコントロールはWinForms、WPFまたはSilverlight)で発生したいくつかのイベント(MouseMove、MouseDown、KeyDown、...)をキャプチャする必要があるコントローラを持っています。 このような汎用コントローラを実装する方法はありますか?WF、WPF、Silverlight共通イベントハンドラ

* ChrisBDによって追加*

背景: 私はMVCアプリケーションを持っていると私はIGeneralControlへアクセスもを有するコントローラ(GeneralController)を有します。このIGeneralControlは、WPF、WF、およびSilverlight固有のコントロール(WFControl、WPFControl、SilverlightControl)によって実装されます。達成したいのは、WFController、WPFController、およびSilverlightControllerを実装する必要なしに、GeneralControllerのレベルでコントロールの代理人に自分のコードを追加できることです。

+1

コントローラが存在するアプリケーション内で生成されたこれらのイベントをキャプチャすることを目指しているか、発生した場所でこれらのイベントをキャプチャすることを検討していますか?デスクトップ、他のプログラム? – ChrisBD

+0

私はMVCアプリケーションを持っており、IGeneralControlへのアクセス権を持つコントローラ(GeneralController)を持っています。このIGeneralControlは、WPF、WF、およびSilverlight固有のコントロール(WFControl、WPFControl、SilverlightControl)によって実装されます。私が達成したいのは、WFController、WPFController、およびSilverlightControllerを実装する必要なしに、GeneralControllerのレベルでコントロールの代理人に自分のコードを追加できることです。 – paccic

答えて

1

私はフォームのエキスパートですが、私はあなたはすべてのGeneralControllerのためにいくつかの作品でこれを行うことができます。 WPF/Silverlightは、静的に宣言されたルーティングイベントを使用して、非常に異なるイベントモデルを使用します。

私はWFControllerと別のWPF/Silverlightコントローラを実装する必要があると思います。

+0

私もそうだと思っていますが、確かにしたいと思っていました。 – paccic

+1

私はGazTheDestroyerに同意します WFまたはWPFコントロールからなるアプリケーションで同様の問題が発生しましたが、コントローラがWFイベントとWPFイベントの両方をサポートできる方法が見つからず、これが可能ではないと思います。 同じイベントを何らかの形で使用することができたとしても、すべてのイベント引数は完全に異なる名前空間に由来するためです。例: MouseEvent:System.Drawing.PointとSystem.Windows.Point 最後に、2つの異なるコントローラを実装しました。 – SvenG

+0

これを実現するには、イベントハンドラとイベント引数のためのラッパーを使用することができますが、これは多くの頭痛になります。 – paccic