In der Praxis implementieren Sie benutzerdefinierte Steuerelemente auf Codeebene, während Sie XAML für Benutzersteuerelemente verwenden können. Die benutzerdefinierten Steuerelemente erweitern eine der Basisklassen der WPF-Steuerelemente und bieten zusätzliche Funktionen durch Code, sodass die gesamte hinzugefügte Logik und Darstellung im Code implementiert werden muss.
Ein Benutzersteuerelement ist technisch gesehen ein normales Inhaltssteuerelement, das Sie an einigen Stellen im Code erweitern können. In der Regel wird es jedoch erweitert, indem andere Steuerelemente darin platziert werden. Wie Kent bereits erwähnt hat, ist ein UserControl eine Ansammlung anderer Steuerelemente. Dies schränkt die Möglichkeiten einer Benutzersteuerung erheblich ein. Es ist einfacher zu verwenden, aber eingeschränkter als ein vollständiges benutzerdefiniertes Steuerelement.
Diese Steuerelemente unterscheiden sich aus Sicht der Laufzeit geringfügig. Wenn Sie eine Anwendung erstellen und ein UserControl darin platzieren, enthält die Steuerungsstruktur eine konkrete UserControl-Vorlage. Wenn wir also ein lahmes Beispiel für einen speziellen Knopf betrachten. Wenn Sie ein Benutzersteuerelement verwenden, fügen Sie dem <UserControl>
Element eine Schaltfläche hinzu . Wenn Sie ein benutzerdefiniertes Steuerelement verwenden, leiten Sie das Steuerelement höchstwahrscheinlich von einer Schaltfläche ab. Der Unterschied wäre im logischen Baum sichtbar.
Während das benutzerdefinierte Steuerelement einen logischen Baum ähnlich wie bereitstellen würde
Das UserControl würde einen logischen Baum von geben
Am Ende ist das UserControl also nur ein normales ContentControl, das Sie ein wenig erweitern und für das Sie den Inhalt vordefinieren können. Die benutzerdefinierte Steuerung bietet eine größere Flexibilität zum Preis einer einfachen Implementierung, da Sie die gesamte Logik und Interaktion im Code ausführen müssen, anstatt den Vorteil von XAML zu nutzen.
Nach all dem glaube ich nicht, dass es so viele Unterschiede in den Visual Studio-Vorlagen gibt. Höchstwahrscheinlich erstellt das benutzerdefinierte Visual Studio-Steuerelement nur ein Projekt mit einem leeren benutzerdefinierten Steuerelement, während das Benutzersteuerelementprojekt ein Projekt mit einem leeren Benutzersteuerelement ist. Sie können dem Projekt später beliebige Elemente hinzufügen.
Aktualisieren
Meiner Meinung nach sollten Sie ein Benutzersteuerelement verwenden, wenn Sie mit einem Benutzersteuerelement etwas erledigen können und das zusätzliche Steuerelement im logischen Baum Sie nicht stört. Verwenden Sie ein Benutzersteuerelement, da diese so viel einfacher zu handhaben sind erstellen und pflegen. Verwenden Sie ein benutzerdefiniertes Steuerelement nur, wenn Sie einen Grund haben, kein Benutzersteuerelement zu verwenden.