it-swarm.com.de

Was ist der Unterschied zwischen einer User Control Library und einer Custom Control Library?

Ich bin gerade dabei, WPF zu beschleunigen und möchte ein wiederverwendbares WPF-Steuerelement erstellen.

Wenn ich mir die Optionen zum Erstellen von Projekten in Visual Studio anschaue, sehe ich "WPF User Control Library" und "WPF Custom Control Library". Mir ist nicht klar, worin der Unterschied besteht, und meine Google-Suchanfragen haben keine anständigen Erklärungen geliefert.

Ich möchte die Unterschiede zwischen ihnen verstehen und im Idealfall einige Beispiele dafür sehen, wann man sie übereinander verwendet.

159
17 of 26

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 WPF-Steuerelement-Basisklassen 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 an einigen Stellen im Code erweitert werden kann. In der Regel wird es jedoch erweitert, indem andere Steuerelemente darin platziert werden. Wie Kent bereits erwähnte, ist ein UserControl eine Zusammenfassung anderer Steuerelemente. Dies schränkt die Möglichkeiten einer Benutzersteuerung erheblich ein. Es ist einfacher zu bedienen, aber eingeschränkter als ein vollständiges benutzerdefiniertes Steuerelement.

Diese Steuerelemente unterscheiden sich in Bezug auf die Laufzeit geringfügig. Wenn Sie eine Anwendung erstellen und ein UserControl darin platzieren, enthält die Steuerelementstruktur eine konkrete UserControl-Vorlage. Betrachten wir also ein lahmes Beispiel für einen speziellen Knopf. Wenn Sie ein Benutzersteuerelement verwenden, fügen Sie eine Schaltfläche im <UserControl> Element. Wenn Sie ein benutzerdefiniertes Steuerelement verwenden, leiten Sie das Steuerelement höchstwahrscheinlich von einer Schaltfläche ab. Der Unterschied würde im logischen Baum sichtbar sein.

Während das benutzerdefinierte Steuerelement eine logische Struktur ähnlich wie bereitstellen würde

  • Fenster
    • CustomButton

Das UserControl würde einen logischen Baum von geben

  • Fenster
    • CustomButtonUserControl
      • Taste

Letztendlich ist das UserControl also nur ein normales ContentControl, das Sie ein wenig erweitern und für das Sie den Inhalt vordefinieren können. Benutzerdefinierte Steuerung bietet mehr Flexibilität bei gleichzeitig einfacher Implementierung, da Sie die gesamte Logik und Interaktion im Code ausführen müssen, anstatt den Vorteil von XAML zu nutzen.

Nach alledem glaube ich nicht, dass die Visual Studio-Vorlagen einen so großen Unterschied aufweisen. Wahrscheinlich erstellt das benutzerdefinierte Steuerelement von Visual Studio 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.

pdate

Meiner Meinung nach ist es einfacher, ein Benutzersteuerelement zu verwenden, wenn Sie mit einem Benutzersteuerelement etwas anfangen können und das zusätzliche Steuerelement in der logischen Struktur Sie nicht stört erstellen und pflegen. Verwenden Sie ein benutzerdefiniertes Steuerelement nur, wenn Sie einen Grund haben, kein Benutzersteuerelement zu verwenden.

111
Mikko Rantanen

Ein Control repräsentiert ein Verhalten, das für eine Anwendung spezifisch ist, während ein UserControl im Allgemeinen eine übergeordnete Aggregation von Controls darstellt.

Mehr Info verfügbar hier .

23
Kent Boogaart