2010-06-07 10 views
18

Ich arbeite an dem Erstellen eines Datums-/Uhrzeit-Benutzersteuerelements in WPF, das C# 2008 verwendet. Mein erstes Benutzersteuerelement. Ich benutze auch Matthew MacDonalds Buch "Pro WPF in C# 2008". In diesem Buch empfahl er dringend, ein Benutzersteuerelement mithilfe der Projektvorlage WPF Custom Control Library zu erstellen. also folgte ich seinem Vorschlag. Ich habe den Code fertig geschrieben, der in die Code-Behind-Datei einfließen würde. Jetzt bin ich bereit, den XAML zu schreiben.Unterschied zwischen Benutzersteuerelement und benutzerdefinierter Steuerelementbibliothek

Das einzige Problem ist, ich habe gerade festgestellt, dass es keine entsprechende .xaml-Datei gibt? Also, ich verstehe nicht, warum die Verwendung eines WPF Custom Control Library-Projekts beim Schreiben eines Benutzersteuerelements besser oder besser ist?

Antwort

28

Ein Benutzersteuerelement und ein benutzerdefiniertes Steuerelement lösen zwei deutlich unterschiedliche Probleme.

UserControls sollen mehrere WPF-Steuerelemente zusammen bilden, um eine Reihe von Funktionen aus anderen Steuerelementen zu erstellen. Dies wird oft verwendet, um einen Teil eines Fensters oder Bildschirms zu erstellen, um Ihre Entwicklung zu organisieren, indem Sie mehrere Funktionen in einer "Kontrolle" gruppieren können. Wenn Sie beispielsweise ein Steuerelement zum Bearbeiten eines Benutzers einrichten möchten, das Textfelder für den Vor- und Nachnamen, das Alter usw. enthält, kann ein einzelnes Benutzersteuerelement in ein Fenster eingefügt und an eine Benutzerinstanz gebunden werden, um dieses zu bearbeiten. (In diesem Fall verwenden Sie Standardsteuerelemente wie TextBox, um ein Steuerelement für einen komplexeren Zweck zu erstellen.)

Ein CustomControl soll jedoch ein neues einzelnes Steuerelement sein. Dies wäre normalerweise ein Ersatz für ein eingebautes Steuerelement (das nicht über das Templating wiederhergestellt werden konnte). Ich habe herausgefunden, dass die Notwendigkeit von benutzerdefinierten Steuerelementen in WPF eher selten ist, da die WPF-Vorlagenoptionen und angehängten Eigenschaften es Ihnen ermöglichen, fast alles mit Standardsteuerelementen auszuführen, nachdem Sie sie vollständig gelernt haben.

+0

Vielen Dank für die Erklärung. Es scheint mir dann, dass ich das Benutzersteuerprojekt und nicht das benutzerdefinierte Steuerbibliotheksprojekt verwenden muss. – Rod

+3

Dies beantwortet die Frage nicht. Die Frage war, was ist der Unterschied zwischen einer benutzerdefinierten Kontrolle und Benutzerkontrolle ** Bibliothek **. Ich kann diese Antwort nehmen und ableiten, welche ich verwenden sollte, aber es sagt mir immer noch nicht, wie die beiden Projektvorlagen unterschiedlich sind. – jcmcbeth

1

Ich würde auch hinzufügen, wenn Sie beabsichtigen, von Ihrer Kontrolle zu erben, dann wird die Verwendung eines Benutzersteuerelements die Angelegenheit komplizieren. Wenn Sie beispielsweise ein Basisbenutzersteuerelement mit einem in Xaml definierten Layout erstellen, können Sie mit WPF Framework dieses Steuerelement nicht erben und Xaml zum Definieren des Layouts für die Unterklasse verwenden. In Dotnet 3.5 Xaml Kontrolle kann nicht erben von einem anderen Xaml Steuerelement

+0

Sie haben Recht. Aus diesem Grund muss Composition bei der Arbeit mit WPF der Vererbung vorgezogen werden. –

Verwandte Themen