4

ElementHostを使用してWinformアプリケーションでWPFUserControlをホストすることに不利な点があるかどうか知りたいですか?

一般的に、まともな外観の基本的なインターフェイスを備えた新しいWPFアプリケーションを作成するには時間がかかると感じているので質問します。新しいWinformsアプリケーションを作成し、それにいくつかのコントロールを投げると、他の多くのアプリケーションと同じように見え、動作するが、見た目がわかりにくい基本的なインターフェイスになってしまうという意味でまともです。WPFアプリケーションで同じことを行うと、同じ結果が得られないと感じます。デザイナーに役割を変更し、特定の外観にするために余分な時間を費やさない限り、背景が白い「プレーン」なアプリケーションになります。仕方。

ただし、定型化されたインターフェイスを比較的簡単に作成できるため、WPFが望ましい場合があります。ビデオプレーヤーコントロールについて考えてみましょう。WPFでは、非常に見栄えがよくカスタムに見えるものを作成できますが、Winformsコントロールよりもはるかに少ない時間と労力で済みます。このような場合、OnPaintをオーバーライドするよりも時間がかからないため、WPFを使用するのは理にかなっています:-)。

私は多くの主観的な用語を使用していることに気づきましたが、これが元の質問の背後にある私の理由です。

アップデート:

私の「ビデオプレーヤーコントロール」の例を明確にするためだけに。WPFをMediaElement使用すると、再生できるだけでなく、ビデオが一時停止しているとき、または半透明の「再生/一時停止/停止/音量」バーを表示したい場合は、ビデオに再生ボタンをオーバーレイします。マウスを特定の場所に置くと、WPFはWinformsのどの代替手段よりもはるかに簡単になります。

編集:

構成オプションが間違っているか何かがあるかもしれませんが、WPFとWinforms Controlを比較すると、[説明]セクションが表示されないのもイライラします。WPFプロパティフォームでF1キーを押しても、現在の特定のプロパティ/イベントに移動できないことは、さらに苛立たしいことです。

アップデート:

他に誰か?ElementHostでWPFUserControlをホストすることによって生じる、パフォーマンスへの影響や機能の制限についてもっと心配しています。これまでのところ、ランタイムの一時的なオーバーヘッドがあるように聞こえますが、それだけですか?

4

1 に答える 1

5

いくつかの潜在的な欠点があります。

まず、UIを表示する方法が2つあります。これは、コードに触れる開発者によっては、メンテナンスの観点から問題を引き起こす可能性があります。

次に、WPFにはランタイムが関連付けられています(イベントのディスパッチ、依存関係プロパティの管理など)が、これは1回限りのコストです。少数のコントロールにそれを使用している場合は、その使用量に比例して比較的大きなコストを支払っています。

私はこれらが取引を破る者であるとは言いません、それはすべてあなたのアプリとあなたのチームに依存しています。

于 2010-02-15T22:41:44.967 に答える