2014-01-08 56 views
0

編輯:快速介紹:WindowsFormsHost增加了xaml包含所有內容。添加者C#沒有內容--->下面的圖片。在WPF應用程序的WrapPanel中添加WindowsFormsHost的不可見內容

當我由XAML插入在WrapPanel x:Name = "VideoPanel"一個WindowsFormsHost,然後在的.cs添加VideoStream videoStream文件,視頻流的conents都在那WrapPanel可見。一切都OK內容可見(下面的截圖)。

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; 

結果(正確的結果):

enter image description here


但是,當我想創造並插入WindowsFormsHost並在WrapPanelVideoStream通過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> 

結果(不正確):

enter image description here

如何使VideoStream的內容可見?

回答

1

你的問題是在這條線:

lineBorder.Child = new WindowsFormsHost(); 

應該是:

lineBorder.Child = formsHost; 

你正在創建一個新的windowsformshost並沒有使用正確的一個。

相關問題