[英]Not visible content of WindowsFormsHost when added to WrapPanel in WPF application
編輯:快速介紹:由xaml
添加的WindowsFormsHost
具有所有內容。 由C#
添加的內容不存在--->下圖。
當我通過XAML
在WrapPanel x:Name = "VideoPanel"
插入WindowsFormsHost
,然后在.cs文件中添加VideoStream videoStream
時,在該WrapPanel
中可見VideoStream的內容。 一切正常,內容可見(以下屏幕截圖)。
注釋: 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;
結果 (正確結果):
但是,當我想通過C#代碼在WrapPanel
創建並插入WindowsFormsHost
和VideoStream
,只有可見的邊框沒有內容。 如何使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
內容可見?
您的問題在這條線上:
lineBorder.Child = new WindowsFormsHost();
應該 :
lineBorder.Child = formsHost;
您正在創建一個新的Windowsformshost,而不使用正確的Windowsformshost。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.