Я пытаюсь добавить пользовательский элемент управления WPF в существующий проект WinForms и заставить WPF UserControl закрепить и заполнить все пространство.
Существует текущая структура, которая загружает WinForms UserControls в родительскую форму (в панель) в ответ на нажатие кнопки. Вот где я пытаюсь подключиться - пользовательский элемент управления WinForms, который в настоящее время загружается, будет иметь ElementHost.
Иерархия:
- Form1.cs - содержит панель, которая динамически загружает пользовательские элементы управления WinForms.
- WinForms UserControl - содержит ElementHost
- WPF UserControl
У ElementHost для Dock установлено значение Fill, а для его свойства Child установлено значение ucReport, которое является WPF UserControl со следующей разметкой (включен только дизайн верхнего уровня):
<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 UserControl (тот, который имеет ElementHost) в конструкторе, проблема очевидна. Указанное содержимое WPF отображается и заполняется сверху вниз, но не слева направо.
Я считаю, что в XAML нужно что-то установить (возможно, в объявлении UserControl?), Чтобы заставить его заполнить родительский контейнер, которым является ElementHost - я просто не могу найти свойство.
Кто-нибудь меня просветит?