2012-04-12 44 views
2

所以我在我的應用程序中有一個控件,我想利用這個彈出窗口。它有一個WebBrowser控件是它的一部分。Popup AllowTransparency正在查殺WebBrowser子

我注意到,每當我設置以下屬性只有WebBrowser控件在我的自定義控件上消失。

.AllowsTransparency = true; 

但是,如果我刪除屬性控制看起來正常,並且功能正常。我設置該屬性的唯一原因是因爲該控件使用圓角邊框,並且默認情況下Popup控件具有黑色背景。

如果將AllowsTransparency屬性設置爲true,則該窗口中存在相同的行爲。

只需要注意,您可以在沒有特殊屬性的全新控件上模擬此行爲。我已經在新控件和新窗口上進行了測試。

任何幫助表示讚賞。

編輯

當web瀏覽器被設置爲的designMode =開時發生。

回答

3

web瀏覽器是不是原生WPF控件。它實際上只是在內部創建一個ActiveX WebBrowser控件。 HwndHost(如WebBrowser)不能放入窗口/彈出窗口,因爲它啓用了分層窗口(即包含WS_EX_LAYERED樣式),所以該窗口/彈出窗口是真實的。

+0

我會在此處添加此內容並編輯我的問題。我認爲這個問題會在設計模式設置爲開啓時發生。這主要是當WebBrowser控件消失時。我對這兩個Answer海報表示歉意,因爲最初沒有提供。 – meanbunny 2012-05-02 19:20:29

-1

我不知道你在那裏做什麼。沒有代碼,很難說。但我的猜測是,你沒有設置內部邊界控制的背景。只要把這個代碼在一個新的解決方案,不應該有任何問題,一切都是可見的:

<StackPanel > 
    <Popup IsOpen="True" AllowsTransparency="True"> 
     <Border Padding="10" Width="250" Height="250" Opacity="1" BorderBrush="Black" BorderThickness="1" CornerRadius="3"> 
      <Border Background="Black"> 
       <StackPanel> 
        <TextBlock Foreground="White" Margin="5,25,5,5" HorizontalAlignment="Center">tata</TextBlock> 
        <Button Background="Black" Foreground="White" BorderBrush="Silver" HorizontalAlignment="Center">ok</Button> 
       </StackPanel> 
      </Border> 
     </Border> 
    </Popup> 
...... 
+0

你用WebBrowser控件測試了這個嗎?我已經實現了您在新解決方案中提供的以下代碼,並且WebBrowser控件仍然消失。所有其他內容都很好,包括按鈕,文本塊等。 – meanbunny 2012-04-12 14:52:26

+0

剛剛完成,作品 – 2012-04-12 17:17:37