Wie können Sie die Eltern eines UIElement?
Ok, ich weiß, dass FrameworkElement
, die eine direkte Unterklasse von UIElement
hat eine Parent-Eigenschaft, aber Platten haben Kinder geben UIElement
, nicht FrameworkElement
(Kindern ist der Typ UIElementCollection
), die scheint, dass es würde bedeuten, dass Sie können hinzufügen UIElement
s direkt auf ein Panel.
Sagte, dass, wenn Sie eine UIElement
und wollen, um zu sehen, wenn es ein Elternteil hat, das ist ein panel, der einzige Weg, ich weiß, wie zu testen ist das mit der VisualTreeHelper
, aber das ist die visuelle Struktur, nicht die logische Struktur. (Wir zumindest wissen, dass ein Panel nicht eine Vorlage haben, so vielleicht ist das der Weg, aber trotzdem...)
Also abgesehen von der VisualTreeHelper
, wer weiß, wie zu wissen, welches panel ist den Eltern eines UIElement
? (...und irgendwelche Gedanken, warum Sie nicht einfach definieren, eine Parent-Eigenschaft, anstatt auf FrameworkElement
?)
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, wenn Sie brauchen, um zu finden, die eine logisch übergeordnete Objekt können Sie nur verwenden
LogicalTreeHelper
in der gleichen Weise wieVisualTreeHelper
.Als für "...und haben keine Gedanken, warum Sie nicht einfach definieren, eine Parent-Eigenschaft, anstatt auf
FrameworkElement
?". Im Grunde, ist der Begriff der "Logischen Struktur" ist eingeführt auf derFrameworkElement
Ebene. Sehen http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.aspx (siehe Anmerkungen) für die details von dem, wasFrameworkElement
fügtUIElement
. Hier ist was es sagt über Logische Bäume: