簡體   English   中英

在WPF應用程序中添加到WrapPanel時,WindowsFormsHost的內容不可見

[英]Not visible content of WindowsFormsHost when added to WrapPanel in WPF application

編輯:快速介紹:由xaml添加的WindowsFormsHost具有所有內容。 C#添加的內容不存在--->下圖。

當我通過XAMLWrapPanel 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創建並插入WindowsFormsHostVideoStream ,只有可見的邊框沒有內容。 如何使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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM