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
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.
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