编辑:快速介绍:WindowsFormsHost
添加的xaml
包含所有内容。由C#
添加没有内容--->下面的图片。
当我在WindowsFormsHost
的{{1}}中插入WrapPanel x:Name = "VideoPanel"
,然后在 .cs 文件中添加XAML
时,视频流的视频在VideoStream videoStream
中可见。一切都很好内容可见(截图如下)。
注释:WrapPanel
扩展VideoStream
XAML:
System.Windows.Forms.UserControl
.cs文件:
<WrapPanel x:Name="VideoPanel" >
<Border BorderBrush="Green" BorderThickness="2">
<WindowsFormsHost x:Name="Host" Width="400" Height="400"></WindowsFormsHost>
</Border>
</WrapPanel>
结果(正确的结果):
但是当我想通过C#代码在VideoStream videoStream = new VideoStream();
Host.Child = VideoStream;
中创建和插入WindowsFormsHost
和VideoStream
时,只有边框可见而没有内容。 如何让WrapPanel
的内容可见?
我遇到问题的代码:
VideoStream
XAML:
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;
结果(不正确的):
如何让 <WrapPanel x:Name="VideoPanel" >
</WrapPanel>
的内容可见?
答案 0 :(得分:1)
你的问题就在这一行:
lineBorder.Child = new WindowsFormsHost();
应该是:
lineBorder.Child = formsHost;
您正在创建一个新的windowsformshost而不使用正确的。