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