UserControls
違いを説明するいくつかの優れた回答が既にありますが、カスタム コントロールと異なる目的があることも理解しています。
はUserControl
通常、ある種の複合動作をカプセル化します。たとえば、多くの場所で連絡先の詳細を編集する必要があるアプリケーションがある場合、すべてのデータのラベルとテキスト フィールドを含むカスタム コントロールを作成し、関連するコードを持つ送信ボタンを配置して、このコントロールを再利用することができます。アプリケーション全体で。
カスタム コントロールは、WPF
コントロール クラス (EGなど) の 1 つから派生したコントロールでありControl
、ContentControl
コードで作成する必要があります。これらのコントロールは通常、全体として一緒に機能するのではなく、単一のまとまりのある目的 ( TextBox
、ComboBox
、と考えLabel
てください) を持っています (ただし、必ずしもそうである必要はありません)。
UserControl
は通常、WPF
視覚的に設計できるため、慣れていない人にとっては簡単です。
私の提案は、から始めることUserControl
です。仕組みに慣れてきたら、いつでもこれをカスタム コントロールにリファクタリングできますWPF
。コントロールをカスタム コントロールとして作成するには、コントロールのルック アンド フィールを定義するために独自のものを提供する必要があるため、およびの知識が必要です。ControlTemplate
Style
結局のところ、コントロールが正しく動作する限り、どのアプローチを使用してもかまいません。
同じ問題に対する 2 つのアプローチの例については、この投稿を参照してください。投稿者は、プライマリ コンテンツの前にモーダル コンテンツを表示できるコントロールを求めていました。投稿者は、実際にUserControl
. カスタムコントロールとしてコントロールを作成する投稿に回答を追加しましたが、どちらも同じ結果になります。