In der Praxis werden benutzerdefinierte Steuerelemente auf der Codeebene implementiert, während Sie XAML für Benutzersteuerelemente verwenden können. Die benutzerdefinierten Steuerelemente erweitern eine der WPF-Steuerbasisklassen und stellen zusätzliche Funktionen über Code bereit, sodass die gesamte hinzugefügte Logik und Repräsentation im Code implementiert werden muss.
Ein Benutzer-Steuerelement ist technisch eine normale Inhaltskontrolle, die Sie in einigen Teilen im Code erweitern können, aber normalerweise wird es erweitert, indem Sie andere Steuerelemente darin platzieren. Wie Kent erwähnt, ist ein UserControl eine Zusammenfassung anderer Steuerelemente. Dies begrenzt, was Sie mit einer Benutzerkontrolle erheblich tun können. Es ist einfacher zu verwenden, aber begrenzter als ein vollständiges benutzerdefiniertes Steuerelement.
Diese Steuerelemente unterscheiden sich im Hinblick auf die Laufzeit geringfügig. Wenn Sie eine Anwendung erstellen und ein Benutzersteuerelement einfügen, enthält die Steuerelementstruktur eine konkrete UserControl-Vorlage. Wenn wir also ein lahmes Beispiel für einen spezialisierten Button betrachten. Wenn Sie ein Benutzersteuerelement verwenden, fügen Sie innerhalb des Elements <UserControl>
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 die individuelle Steuerung einen logischen Baum ähnlich wie
Die Usercontrol würde einen logischen Baum von
die Usercontrol ist nur eine normale Content, die Sie ein wenig verlängern und für die Sie also am Ende vordefinieren der Inhalt. Die benutzerdefinierte Steuerung bietet eine größere Flexibilität zum Preis der einfachen Implementierung, da Sie die gesamte Logik und Interaktion im Code ausführen müssen, anstatt XAML nutzen zu müssen.
Obwohl nach all dem, ich glaube nicht, dass es so viel Unterschied in den Visual Studio-Vorlagen. Sehr wahrscheinlich erstellt das benutzerdefinierte Steuerelement von Visual Studio nur ein Projekt mit einem leeren benutzerdefinierten Steuerelement, während das Benutzersteuerelement-Projekt ein Projekt mit einem leeren Benutzersteuerelement ist. Sie können später dem Projekt beliebige Elemente hinzufügen.
aktualisieren
Und meiner Meinung nach, wenn benutzerdefinierte Steuerelement zu verwenden und Benutzersteuerung ist, dass, wenn Sie etwas getan mit einem Benutzersteuerung und dem zusätzlichen Bedienelement in der logischen Struktur nicht stört bekommen können, Verwenden Sie ein Benutzersteuerelement, da sie so viel einfacher zu erstellen und zu verwalten sind. Verwenden Sie ein benutzerdefiniertes Steuerelement nur, wenn Sie einen Grund haben, kein Benutzersteuerelement zu verwenden.
Vergessen Sie nicht, Inhalt zu verschachteln oder die Vorlage eines Steuerelements als Optionen zu ändern. Sie können auf diese Weise ziemlich drastische Änderungen an einem Steuerelement vornehmen, ohne ein benutzerdefiniertes Steuerelement schreiben zu müssen. – MichaC
Nur was MichaC gesagt hat. Der beste Teil von WPF ist, dass die Erstellung vorhandener Steuerelemente große Auswirkungen haben kann. Sie sollten selten benutzerdefinierte Steuerelemente benötigen. Dies ist anders als bei WinForms, wo selbst geringfügige Änderungen an einem Steuerelement ein neues abgeleitetes Steuerelement erforderten. –
Immer noch nützlich. Habe noch ein goldenes Abzeichen. – ouflak