WPF在一个没有允许透明度的窗口中的边框上的圆角

时间:2014-07-24 17:45:08

标签: wpf xaml browser transparency rounded-corners

我遇到类似于this的问题,但我有一个窗口不能有“AllowTransparency = True”,因为它内部的WebBrowser将呈现为不可见。窗户的角落是黑色的,我需要它们是透明的。

将背景颜色更改为透明无效。我发现你可以在弹出窗口周围用这个问题包裹圆边的边框,但你不能用窗口做。

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Background="Transparent" AllowsTransparency="False">

    <Border Padding="0" Margin="0" BorderThickness="1" CornerRadius="100" Background="AliceBlue">
        <StackPanel>
            <TextBlock HorizontalAlignment="Center">v This is a webbrowser v</TextBlock>
            <Border BorderBrush="red" BorderThickness="5">
                <WebBrowser />
            </Border>
        </StackPanel>
    </Border>
</Window>

有什么想法吗?

--- --- EDIT

我已经尝试了WebBrowser Overlay solution的各种形式,但我的具体问题无法使用它。我需要一个AllowTransparency =“False”的解决方案。

1 个答案:

答案 0 :(得分:0)

您似乎在webbrowser窗口和wpf窗口之间存在互操作问题

因此,当您将wpf窗口设置为透明时,它会有效地使浏览器透明,因为浏览器位于主窗口的层次结构中

因此,克服此问题的整个想法是在单独的本机窗口中托管浏览器并将其覆盖在透明的wpf窗口上

您可以关注WebBrowser control on transparent WPF window