public partial class PopupWindow : Window { public PopupWindow() { InitializeComponent(); WindowStartupLocation = WindowStartupLocation.Manual; Loaded += (s, e) => { // HACK1: use Loaded Mouse.Capture(this); // HACK2: use Capture var p = PointToScreen(Mouse.GetPosition(this)); Mouse.Capture(null); var source = PresentationSource.FromVisual(this); p = new Point( // HACK2: use Transform p.X / source.CompositionTarget.TransformToDevice.M11, p.Y / source.CompositionTarget.TransformToDevice.M22 ); Left = p.X - (ActualWidth / 2); Top = p.Y - 16; }; } }