WPF: размеры элемента Canvas
От: just_aircraft  
Дата: 30.10.18 14:48
Оценка:
Привет всем,
Помогите пожалуйста с ребусом..неделю не могу победить.
Есть окно приложения, на нем есть панель типа Canvas — в коде ниже фигурирует как myPanel
Задача найти окно запущенного рядом Notepad, сделать его дочерним окном моего приложения и вписать положение и размеры окна Notepad в поле занимаемое myPanel.

    IntPtr hParent=Process.GetCurrentProcess().MainWindowHandle;            
    IntPtr hWnd = IntPtr.Zero;
        foreach (Process pList in System.Diagnostics.Process.GetProcesses())
            {
                if (pList.MainWindowTitle.Contains("Notepad"))
                {
                    hWnd = pList.MainWindowHandle;
                }
            }
            SetParent(hWnd, hParent);
        Point ptPanelOrigin = myPanel.PointToScreen(new Point(0, 0));
            MoveWindow(hWnd, (int)ptPanelOrigin.X, (int)ptPanelOrigin.Y, (int)myPanel.ActualWidth, (int)myPanel.ActualHeight, true);

Для "захвата" и позиционирования окна Notepad использую функции WinApi.
Соответстветнно окно находится, дочерним делается, а вот с позиционирование и размерами беда. Никак он не хочет занимать нужное положение и размеры.
Всё время мимо панели. Всегда окно Notepad сдвинуто вниз и вправо и по ширине и высоте не совпадает с размерами панели.
Кодом я пытаюсь найти верхнюю левую точку панели, перевести её в координаты экрана и на эту точку сдвинуть левый верхний угол Notepad. Вроде очевидно всё..но не срабатывает.
где могут быть грабли?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.