Manchmal gibt es einen Rahmen Kontrolle oder eine Rechteck Kontrolle wird ein Bedürfnis erfüllen, das ich brauche haben. Ein Beispiel wäre, wenn ich ein ControlTemplate implementiere und ich bereits ein Layering-Verfahren anwende (d. H. Steuerelemente in einem Raster stapeln), und ich brauche kein anderes RadiusX oder RadiusY, das auf die Ecken angewendet wird.
Wenn ich solche ControlTemplates entwerfe, benutze ich manchmal mehrere solche Layer von Borders oder Rectangles. Als solches wurde mir klar, dass ich wahrscheinlich wissen sollte, welche Kontrolle die geringste Auswirkung auf die Anwendung hat. Ich sehe, dass ihre Vererbungshierarchie nach FrameworkElement divergiert. Und ich merke auch, dass die Border ein Decorator-Steuerelement ist (ich habe mit Decorators gearbeitet, aber ich bin mir nicht sicher, wie sie sich relativ zu anderen Controls verhalten). Kann jemand Licht auf
werfen?1) Wie können wir möglicherweise allgemeine Schlussfolgerungen über die Auswirkungen einer Kontrolle auf die Leistung einer bestimmten Vererbungshierarchie ziehen?
2) Wie können Dekoratoren wie Border relativ zu anderen Steuerelementen ausgeführt werden?
3) Speziell in Bezug auf Border und Rectangle, welche besser funktioniert?
Ich habe die Erfahrung gemacht, dass WPF-Rahmen ein bisschen leichter sind, aber noch wichtiger - sie stellen ein etwas anderes Bedürfnis dar, obwohl sie oft auf Ihrem Bildschirm gleich dargestellt werden. Wenn ich etwas komponiere, das Rechtecke als Teil dessen enthält, was es ist, dann ist normalerweise das Rechteck das Richtige. Wenn ich etwas auf dem Bildschirm hervorheben möchte oder anzeigen möchte, dass ein Objekt einen anderen Zustand hat, dann verwende ich einen Rahmen. Oft binde ich die Farbe, Dicke oder Sichtbarkeit dieser Grenze an die Zustandseigenschaft des Modells (oder was auch immer in Ihrem Fall gilt), aber der wesentliche Unterschied ist, dass die Grenze kein Teil des Objekts ist. Es ist eine Möglichkeit, dieses Objekt hervorzuheben oder sichtbar zu machen.
Oder wenn es sich um ein bereits bestehendes Ding handelt, wie eine TextBox, und ich füge etwas Farbe hinzu - das wird normalerweise ein Rahmen sein.
Indem Sie diese Unterscheidung beachten, hilft es Ihrem XAML-Baum, für Sie besser zu sein, und gibt Ihnen Code, der später leichter zu pflegen ist.
Tags und Links wpf wpf-controls