Я пытаюсь добавить пользовательский контроль WPF в существующий проект WinForms и заставить WPF UserControl закрепить и заполнить все пространство.
Существует текущая структура, которая загружает пользовательские элементы управления WinForms в родительскую форму (в панель) в ответ на нажатия кнопок. Вот где я пытаюсь подключиться - пользовательский элемент управления WinForms, который в данный момент загружается, будет иметь ElementHost.
Иерархия:
- Form1.cs - содержит панель, которая динамически загружает пользовательские элементы управления WinForms
- WinForms UserControl - содержит ElementHost
- WPF UserControl
Элемент ElementHost имеет Dock, установленный на Fill, и его свойство Child, установленное на ucReport, которое является пользовательским элементом управления WPF, имеющим следующую разметку (включая только дизайн верхнего уровня):
<UserControl x:Class="MyClassName"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TabControl HorizontalAlignment="Left" Name="tabControl1">
<TabItem Header="Header1">
...The interesting stuff goes here
</TabItem>
</TabControl>
</UserControl>
Содержимое UserControl расширяется по вертикали при изменении размера формы, но по горизонтали содержимое расширяется только настолько, чтобы вместить его содержимое.
Когда я просматриваю пользовательский элемент управления WinForms (тот, который имеет ElementHost) в конструкторе, проблема очевидна. Указанный контент WPF визуализируется и заполняется сверху вниз, но не слева направо.
Я имею в виду, что это что-то в XAML, которое нужно установить (возможно, в объявлении UserControl?), Чтобы заставить его заполнить родительский контейнер, который является ElementHost - я просто не могу найти свойство .
Кто-нибудь меня просветит?