2012-04-12 42 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