Встроенная в XAML панель WinForms не поддерживает прямой контент?

Я пытаюсь разместить панель Winforms в моем WPF UserControl со следующим кодом;

<WindowsFormsHost Grid.Row="3">
    <WinForms:Panel>
        <WinForms:TableLayoutPanel x:Name="myLayoutPanel" />
    </WinForms:Panel>
</WindowsFormsHost>

Ошибка:

Тип "Панель" не поддерживает прямой контент.

Я буду тогда инициализировать TableLayoutPanel панель в коде C#. Любые идеи, как я могу обойти эту ошибку?

1 ответ

Решение

Контейнер панели Windows.Forms называется Controls. Вы можете добавить его, выполнив что-то вроде этого: Если бы это был я, я просто создал бы пользовательский элемент управления Winforms и вместо этого добавил бы его в WinFormsHost.

<WindowsFormsHost Height="100" HorizontalAlignment="Left" Margin="10,108,0,0" Name="windowsFormsHost1" VerticalAlignment="Top" Width="200">
    <WinForms:Panel BackColor="Red" Dock="Fill">
        <WinForms:Panel.Controls>
            <WinForms:TableLayoutPanel x:Name="myLayoutPanel"/>
        </WinForms:Panel.Controls>
    </WinForms:Panel>
</WindowsFormsHost>
Другие вопросы по тегам