Невидимое содержимое 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 и не используете правильный.