2013-08-02 5 views
0

У меня есть два приложения WPF, которые я написал сам, App1 и App2. Я хочу добавить App2 в App1.Вставить окно в другое

В настоящее время я пытаюсь это:

App2 app2 = new App2(); 
object content = app2.Content; //which is a grid 
app2.Content = null; 
mainGridOfApp1.Children.Add(content as UIElement); 

Он появляется, но есть несколько проблем:

  • Это не отображается правильно; расположение кнопок и другие UIElements все испорчены.
  • Он охватывает весь экран, хотя mainGridOfApp2 исправлен с гораздо меньшим размером. Эффект подобен WindowState.Maximized.
  • Я применил пользовательский стиль (тему) в App2, но так как App.xaml App2 не читается, пользовательский стиль не применяется. Как его применить?

Как легко встраивать App2 в App1? Я не хочу запускать App2 в качестве отдельного процесса и устанавливать App1 как родителя, потому что это будет означать, что он всегда будет поверх любого компонента AppI, установленного в пользовательском интерфейсе.

EDIT: У меня встроенный App2 в App1. Я поместил основную сетку App2 в UserControl и загрузил UserControl из окна. Для стороны App1 все, что я сделал, было вызвано UserControl из App2 после ссылки на него.

ответ

0

Вы можете загрузить сборку App2 в свое приложение App1 и создать экземпляр Window/UserControl, который вы хотите отображать в контенте.

Вам нужно внести некоторые изменения в App1, чтобы вы могли ссылаться на типы или, возможно, создавать общую сборку с необходимыми интерфейсами, с которыми вы можете связать их.

Думайте, что любое решение (которое не связано с App2, имеющим собственный процесс и находящимся на хостинге) будет полагаться на изменения исходного кода.

Смежные вопросы