2013-02-06 10 views
8

BorderコントロールまたはRectangleコントロールのいずれかが私の必要性を満たす場合があります。たとえば、ControlTemplateを実装していて、既にレイヤリング技術(つまりグリッドにコントロールを積み重ねている)を適用していて、コーナーに適用されるRadiusXやRadiusYは別に必要ありません。WPF Rectangle vs Border:どちらがパフォーマンスに優れていますか?

しかし、このようなControlTemplateを設計するとき、私はときどきいくつかのの境界線または長方形の層を使用して終了します。このように、どのコントロールがアプリケーションにパフォーマンスの影響を最小限に抑えるかについては、おそらく認識しているはずです。私は、継承階層がFrameworkElementの後に異なることが分かります。また、BorderはDecoratorコントロールであることに気付きました(私はDecoratorsと一緒に作業しましたが、他のコントロールと比べてどのように機能するかわかりません)。誰かが光を当てることができます

1)特定の継承階層に基づいてコントロールのパフォーマンスへの影響について一般的な結論を導く方法はありますか?

2)ボーダーなどのデコレータは、他のコントロールと比べてどのように機能しますか?

3)ボーダーと矩形は特に優れていますか?

+0

正直言って、境界線や四角形のパフォーマンスに問題はありませんでした。 –

答えて

0

WPFのボーダーは少し軽量ですが、もっと重要なのは、画面上で同じようにレンダリングされることがありますが、若干異なるニーズがあることです。矩形が含まれているものを構成している場合、その矩形は通常適切なものです。画面上に何かを強調したい、あるいはオブジェクトの状態が異なっていることを示したい場合は、境界線を使用します。私はしばしば、その境界線の色、太さ、または可視性をモデルの状態プロパティ(またはあなたの場合に適用されるもの)にバインドしますが、本質的な違いは、境界線がオブジェクトの一部ではないということです。そのオブジェクトを目立たせたり、目に見えるようにする方法です。

また、TextBoxのようにすでに構成されているものであれば、その周辺に色を追加しています。これは通常境界になります。

この区別を念頭に置いておくことで、XAMLツリーの理解を深めるのに役立ち、後で簡単に管理できるコードが得られます。

関連する問題