Stackoverflow répond à plusieurs questions sur la façon de convertir l'écran en coordonnées WPF, si une fenêtre visible est disponible.Convertir l'écran en coordonnées WPF sans afficher de fenêtre
Comment pouvez-vous faire la conversion si vous n'avez pas ont une fenêtre visible (pour, dans mon cas, une application de plateau)?
J'ai essayé la méthode très inélégant de créer une fenêtre factice cachée,
var w = new Window();
w.Visibility = Visibility.Hidden;
presentationSource = PresentationSource.FromVisual(w);
var transform = presentationSource.CompositionTarget.TransformToDevice;
w.Close();
Cela ne fonctionnera pas. La fenêtre w
doit être affichée, w.Show()
, pour que PresentationSource.FromVisual
fonctionne. J'ai également essayé w.PointFromScreen(point)
, mais cela déclenche une exception si le w
n'est pas affiché.
Voir [cette question] (http://stackoverflow.com/q/24441443/1136211). – Clemens