Создать окно WPF во время выполнения - PullRequest
1 голос
/ 27 октября 2010

Можно ли создать элемент управления WPF Window во время выполнения?

Я думаю о некотором хакерском решении проблемы, но я хотел бы иметь возможность иметь dll, которая позволяетмне динамически загрузить окно WPF и скомпилировать связанный с ним код (соответственно из файлов xaml и cs).Я предполагаю, что мне также придется вручную загружать любые сборки, которые требуются в коде.

Это даст мне возможность создавать модульные дополнения, которые позволяют запускать Windows из другого приложения без компиляции в исходный код.

Есть несколько SO-сообщений на эту тему, но, похоже, ни одно из них не касается конкретно создания окон / кодов.

Если это невозможно (или просто не рекомендуется), мысли об альтернативах будутс благодарностью.

Приветствия,

Кайл

1 Ответ

1 голос
/ 27 октября 2010

Я бы порекомендовал рассмотреть такие технологии, как MEF . Теперь это включено непосредственно в Framework, но позволяет вам «внедрить» сторонний код / ​​windows / views / viewmodels непосредственно в ваше приложение, не распространяя его.

Вместо того, чтобы пытаться скомпилировать код в вашем приложении, вы можете предоставить простые интерфейсы и позволить MEF составить приложение для вас. Это гораздо более простой и гибкий вариант.

Я использовал это раньше, когда у меня был контракт на ViewModels и контракт на ResourceDictionaries, содержащие DataTemplates. Это позволяет вам делать полностью динамическое внедрение логики времени выполнения (ViewModel) со связанными с ними представлениями и просто оборачивать его в Window во время выполнения.

...