Невидимое содержимое WindowsFormsHost при добавлении в WrapPanel в приложении WPF

РЕДАКТИРОВАТЬ: ввести быстро: WindowsFormsHost Добавлено xaml имеет все содержимое Добавлено C# не имеет содержания ---> картинки ниже.

Когда я вставляю WindowsFormsHost в WrapPanel x:Name = "VideoPanel" посредством XAML а затем добавить VideoStream videoStream в файле .cs элементы VideoStream видны в WrapPanel, Все в порядке, содержимое видно (скриншот ниже).

Adnotation: VideoStream продолжается System.Windows.Forms.UserControl

XAML:

   <WrapPanel x:Name="VideoPanel" >
               <Border BorderBrush="Green" BorderThickness="2">
                        <WindowsFormsHost x:Name="Host" Width="400" Height="400"></WindowsFormsHost>
                    </Border>
   </WrapPanel>

Файл.cs:

VideoStream videoStream = new VideoStream();
Host.Child = VideoStream;

Результат (правильный результат):

введите описание изображения здесь


Но когда я хочу создать и вставить WindowsFormsHost и VideoStream в WrapPanel по коду C# видна только граница без содержимого. Как сделать содержимое VideoStream видно?

Код, с которым у меня проблема:

   WindowsFormsHost formsHost = new WindowsFormsHost();
        VideoStream videoStream = new VideoStream();
        formsHost.Child = videoStream;
        Border lineBorder = new Border();
        lineBorder.BorderBrush = Brushes.Green;
        lineBorder.BorderThickness = new Thickness(2);
        lineBorder.Child = new WindowsFormsHost();
        VideoPanel.Children.Add(lineBorder);
        videoStream.Height = 400;
        videoStream.Width = 400;
        lineBorder.Width = 400;
        lineBorder.Height = 400;
        formsHost.Width = 400;
        formsHost.Height = 400;

XAML:

  <WrapPanel x:Name="VideoPanel" >
            </WrapPanel>

Результат (неверный):

введите описание изображения здесь

Как сделать содержимое VideoStream видно?

1 ответ

Решение

Ваша проблема в этой строке:

lineBorder.Child = new WindowsFormsHost();

Должно быть:

lineBorder.Child = formsHost;

Вы создаете новый windowsformshost и не используете правильный.

Другие вопросы по тегам