所以我在我的应用程序中有一个控件,我想利用弹出窗口。它有一个WebBrowser控件,它是它的一部分。
我注意到每当我设置以下属性时,只有WebBrowser控件在我的自定义控件上消失。
.AllowsTransparency = true;
但是,如果我删除该属性,控件看起来正常并且功能正常。我设置该属性的唯一原因是因为它控件使用圆形边框,默认情况下,Popup控件具有黑色背景。
如果将AllowTransparency属性设置为true,则窗口中存在相同的行为。
请注意,您可以在没有特殊属性的全新控件上模拟此行为。我已在新控件和新窗口上测试了它们。
感谢任何帮助。
修改
当WebBrowser设置为DesignMode = On时会发生这种情况。
答案 0 :(得分:3)
WebBrowser不是本机WPF控件。它实际上只是在内部创建一个ActiveX WebBrowser控件。 HwndHost(如WebBrowser)无法放入其 AllowTransparency 为真的Window / Popup中,因为它启用了分层窗口(即包含WS_EX_LAYERED样式)。
答案 1 :(得分:-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>
......