Как разместить и размер диалогового окна WPF так же, как владелец? - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь показать форму WPF как всплывающее в VSTO Excel, и всплывающее окно должно быть в том же положении и размере, что и родительский Excel. Я пробую приведенный ниже код, но по некоторым причинам я не получаю фактическую позицию. Может ли кто-нибудь помочь здесь

Обновление - приведенный ниже код работает нормально, если моя шкала разрешения экрана составляет 100%. Если он не равен 100%, я не получаю точную позицию

 [DllImport("user32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int Left;
            public int Top;
            public int Right;
            public int Bottom;
        }

About about = new About();
 RECT r = new RECT();

 if (GetWindowRect((IntPtr)Globals.ThisAddIn.Application.ActiveWindow.Hwnd, ref r))
 {
    about.Top = r.Top;
   about.Left = r.Left;
 }


 var helper = new System.Windows.Interop.WindowInteropHelper(about);
 helper.Owner = (System.IntPtr)Globals.ThisAddIn.Application.Hwnd;
 about.ShowDialog();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...