Laden...

[gelöst] Auf Parents zugreifen

Erstellt von nordside vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.725 Views
nordside Themenstarter:in
186 Beiträge seit 2007
vor 16 Jahren
[gelöst] Auf Parents zugreifen

Hallo,

ich habe eine Struktur wie diese hier:


<Canvas>
  <StackPanel>
    <Image PreviewMouseLeftButtonDown="Image_PreviewMouseLeftButtonDown"/>
  </StackPanel>
</Canvas>

Wenn ich in der behandelnden Methode auf das Canvas zugreifen möchte, mache ich dies so:


Canvas cvs = ((Canvas)((StackPanel)((Image)sender).Parent).Parent);

Dies ist aber nicht flexibel. Füge ich um das StackPanel eine Border hinzu, funktioniert der Ansatz nicht mehr.

Kann man daher nicht sagen: Gebe mir ein Parent von Dir, das vom Typ Canvas ist, zurück. Gibt es etwas vorgefertigtes - oder müsste ich es selbst implementieren?

Danke
nordside

6.862 Beiträge seit 2003
vor 16 Jahren

Mach doch ne einfache Schleife in der Art:


DependencyObject depObj = sender;
while(!(depObj is Canvas) ) {
    depObj = VisualTreeHelper.GetParent( depObj );
}

Du gehst also in der Hierachie solange hoch bis dein DependencyObject nen Canvas ist.

Baka wa shinanakya naoranai.

Mein XING Profil.

nordside Themenstarter:in
186 Beiträge seit 2007
vor 16 Jahren

Hallo talla,

vielen Dank für die Lösung - nur ein kleiner "Fehler" ist drin. Es fehlt ein cast:


DependencyObject depObj = (DependencyObject) sender;

Danke
nordside