Стыковка с ElementHost - PullRequest
       7

Стыковка с ElementHost

1 голос
/ 11 июня 2009

Я пытаюсь добавить пользовательский контроль 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 - я просто не могу найти свойство .

Кто-нибудь меня просветит?

1 Ответ

3 голосов
/ 11 июня 2009

Измените HorizontalAlignment на Stretch или избавьтесь от него полностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...