2013-01-07 2 views
0

Я пытаюсь поместить окно таким образом, чтобы его верхний левый угол находился в одной и той же точке определенного элемента управления WPF.
Так что я пытался получать экран элемента управления координатами, как это:Размещение окна в верхнем левом углу элемента управления WPF

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

, а затем я поставил Top и Left координаты окна в targetPoints.
Но мое окно всегда кажется ПРАВУ элемента управления вместо того, чтобы накладываться на него в верхнем левом углу.

Что я делаю неправильно? Как это можно сделать?

ответ

0

Это должно быть достаточно, чтобы написать

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