スクリーン上のマウス座標を取得し、WPFの論理座標に変換する方法

csharp10スクリーン上のマウス座標を取得し、WPFの論理座標に変換する方法。マウス座標はデバイス座標なのでWPFで使うには論理座標に変換が必要。    
System.Drawing.Point dp = System.Windows.Forms.Cursor.Position;
System.Windows.Point wp = new System.Windows.Point(dp.X, dp.Y);
 // マウス座標から論理座標に変換
PresentationSource src = PresentationSource.FromVisual(this);
CompositionTarget ct = src.CompositionTarget;
System.Windows.Point p = ct.TransformFromDevice.Transform(wp);