1
如果您有一个可见的窗口可用,有关如何将屏幕转换为WPF坐标的Stackoverflow有几个回答问题。将屏幕转换为WPF坐标而不显示窗口
如果你的不是有一个可见的窗口(在我的情况下,一个托盘应用程序),你怎么能做转换?
我试图创建一个隐藏的虚拟窗口的非常不雅方法,
var w = new Window();
w.Visibility = Visibility.Hidden;
presentationSource = PresentationSource.FromVisual(w);
var transform = presentationSource.CompositionTarget.TransformToDevice;
w.Close();
这是行不通的。必须显示窗口w
,w.Show()
,以便PresentationSource.FromVisual
工作。我也试过w.PointFromScreen(point)
,但是如果没有显示w
则会引发异常。
请参阅[此问题](http://stackoverflow.com/q/24441443/1136211)。 – Clemens 2014-09-02 06:22:30