【问题标题】:Placing a window to the top-left corner of a WPF control将窗口放置到 WPF 控件的左上角
【发布时间】:2013-01-07 15:04:20
【问题描述】:

我正在尝试放置一个窗口,使其左上角与特定 WPF 控件左上角位于同一点。
所以我尝试像这样获取控件的屏幕坐标:

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

然后我将窗口的TopLeft 坐标设置为targetPoints
但是我的窗口总是出现在控件的右侧,而不是在左上角与他重叠。

我做错了什么?怎么办?

【问题讨论】:

    标签: wpf coordinate-transformation


    【解决方案1】:

    写应该够了

    var p = ctrl.PointToScreen(new Point());
    Left = p.X;
    Top = p.Y;
    

    【讨论】:

      猜你喜欢
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      相关资源
      最近更新 更多