Ich möchte die absolute Position eines Elements in Bezug auf das Fenster / Stammelement erhalten, wenn es doppelt angeklickt wird. Die relative Position des Elements innerhalb des übergeordneten Elements ist alles, was ich zu erreichen scheint, und ich versuche, den Punkt relativ zum Fenster zu erreichen. Ich habe Lösungen gesehen, wie man den Punkt eines Elements auf dem Bildschirm erhält, aber nicht im Fenster.
quelle
Um die absolute Position eines UI-Elements innerhalb des Fensters zu ermitteln, können Sie Folgendes verwenden:
Wenn Sie sich innerhalb eines Benutzersteuerelements befinden und einfach die relative Position des UI-Elements innerhalb dieses Steuerelements wünschen, verwenden Sie einfach:
quelle
Fügen Sie diese Methode einer statischen Klasse hinzu:
relativeToScreen
Stellen Sie den Parameter auftrue
für die Platzierung in der oberen linken Ecke des gesamten Bildschirms oderfalse
für die Platzierung in der oberen linken Ecke des Anwendungsfensters.quelle
RenderTransform
des Elements auf dem Bildschirm oder außerhalb des Bildschirms verschoben wird. Daher muss die absolute Position des Elements auf dem Bildschirm bekannt sein.Seit .NET 3.0 können Sie einfach verwenden
*yourElement*.TranslatePoint(new Point(0, 0), *theContainerOfYourChoice*)
.Dies gibt Ihnen den Punkt 0, 0 Ihrer Schaltfläche, jedoch in Richtung des Containers. (Sie können auch einen anderen Punkt als 0, 0 angeben.)
Überprüfen Sie hier für das Dokument.
quelle
Hm. Sie müssen das Fenster angeben, auf das Sie im
Mouse.GetPosition(IInputElement relativeTo)
folgenden Code geklickt haben. Das funktioniert gut für michIch vermute, dass Sie auf das Fenster nicht von seiner eigenen Klasse, sondern von einem anderen Punkt der Anwendung aus verweisen müssen. In diesem Fall
Application.Current.MainWindow
wird Ihnen helfen.quelle