Finden Sie den Ort eines Steuerelements in wpf mit PointToScreen
Ich versuche, meine relative Koordinate für ein Benutzersteuerelement in meinem mainwindow. Ich habe versucht mit der "Kontrolle.PointToScreen ()" - Methode, aber mit kein Glück. Jedes mal wenn ich das mache bekomme ich eine Ausnahme, die sagt:
System.InvalidOperationException: Das Visuelle ist nicht mit einem PresentationSource
Ich denke, das hat etwas mit mir zu tun aufrufen pointToScreen, bevor die Grafik richtig dargestellt, da ich bereits den Aufruf der Methode in meinem Netz-Konstruktor.
Na ja, ich würde gerne wissen, ob jemand von Euch hätte einen Tipp/Lösung/Idee, wie ich das vielleicht umgehen.
Nur zu clearify, was ich versuche zu tun, meine Steuerung enthält eine photocontrol, die ich brauche die genaue Position off in meinem maincontrol, da möchte ich diese Koordinaten zu erstellen ein Duplikat der Steuerung oben drauf
Experimentieren mit PointToScreen.
- Warum PointToScreen, wenn Sie es wollen relativ zum Hauptfenster? Sie können
TranslatePoint
statt. Und Sie müssen diesen Aufruf, nachdem das Fenster geladen wurde. Es ist einLoaded
- Ereignis für diesen Zweck.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem code registrieren Sie sich für das Loaded-Ereignis des UserControl.
Sollte das beheben der Fehler, die Grafik ist nicht gerendert, aber wenn Sie versuchen, um die position.
Bearbeiten
Da Sie die position des Steuerelements relativ zum Fenster, besser versuchen, dass man .
Da Streiten gerendert hat nicht funktioniert, ich habe eine Lösung gefunden für mein problem.
Diese Weise, feuert Sie in die LoadedEvent, sondern wartet, bis der Inhalt gerendert werden soll, und dann endlich gibt es Sie, Ihre Koordinate zurück und stellt Ihre Kontrolle
Die Lösung von Max Mazur arbeitet für mich: