0

左上隅が特定のWPFコントロールの左隅と同じポイントになるようにウィンドウを配置しようとしています。
そこで、コントロールの画面座標を次のように取得してみました。

 PresentationSource source = PresentationSource.FromVisual(ctrl);
 Point posFromScreen = ctrl.PointToScreen(new Point(0, 0));
 Point targetPoints = source.CompositionTarget.TransformFromDevice.Transform(posFromScreen);

次に、ウィンドウの座標Topと座標をに設定します。 しかし、私のウィンドウは、左上隅で彼と重なるのではなく、常にコントロールの右側に表示されます。 LefttargetPoints

私は何が間違っているのですか?どのようにそれを行うことができますか?

4

1 に答える 1

0

書くだけで十分なはずです

var p = ctrl.PointToScreen(new Point());
Left = p.X;
Top = p.Y;
于 2013-01-07T07:04:20.317 に答える