У меня есть окно wpf, которое должно быть открыто рядом с окном Excel. Excel открывается и обрабатывается с помощью Interop.Excel. В моем окне у меня есть метод, который должен установить размер окна excel.
private void SetLayout()
{
Top = 0;
Left = 0;
Height = SystemParameters.WorkArea.Height;
((ConfiguratorWindowViewModel) DataContext).Manager.App.Height =
SystemParameters.WorkArea.Height;
((ConfiguratorWindowViewModel) DataContext).Manager.App.Left = Width;
((ConfiguratorWindowViewModel) DataContext).Manager.App.Width = SystemParameters.WorkArea.Width - Width;
}
В моей модели Viewmodel у меня есть менеджер, который возвращает открытое приложение Excel (Office.Interop.Excel.Application). Я могу установить Height, Top,.. моего окна wpf, и он отлично работает, но не в окне Excel. Как я могу установить размер окна Excel рядом со своим окном wpf, чтобы два заполнили весь экран вместе?
Редактировать:
Я пробовал это, но он также не работает:
((ConfiguratorWindowViewModel) DataContext).Manager.App.WindowState = Microsoft.Office.Interop.Excel.XlWindowState.xlNormal;
((ConfiguratorWindowViewModel) DataContext).Manager.App.ActiveWindow.Height = Screen.PrimaryScreen.Bounds.Height;
((ConfiguratorWindowViewModel) DataContext).Manager.App.ActiveWindow.Width = Screen.PrimaryScreen.Bounds.Width - Width;
Оба устанавливают высоту на другое значение, но не на правильное, когда я жестко .Height=800;
его .Height=800;
он также не работает.
К сожалению, я не могу размещать изображения, чтобы показать вам, как это выглядит, и это должно выглядеть.
Редактировать:
Вопрос не такой, как этот (как изменить размер окна другой программы?). Я не хочу менять размер "чужого" приложения.
Допустим, у вас есть приложение excel, хранящееся в переменной под названием App. Тогда вы можете сделать что-то вроде этого:
App.WindowState = Microsoft.Office.Interop.Excel.XlWindowState.xlNormal;
App.ActiveWindow.Height = Screen.PrimaryScreen.Bounds.Height;
App.ActiveWindow.Width = Screen.PrimaryScreen.Bounds.Width;
Экран-класс используется для получения разрешения основного экрана.
Возможно, вы также можете просто увеличить окно:
App.WindowState = Microsoft.Office.Interop.Excel.XlWindowState.xlMaximized