2

そのため、アプリケーションにポップアップを利用したいコントロールがあります。その一部である WebBrowser コントロールがあります。

次のプロパティを設定すると、カスタム コントロールで WebBrowser コントロールのみが消えることに気付きました。

.AllowsTransparency = true;

ただし、プロパティを削除すると、コントロールは正常に見え、正常に機能します。そのプロパティを設定する唯一の理由は、コントロールが丸い境界線を使用し、デフォルトでポップアップ コントロールの背景が黒であるためです。

allowstransparency プロパティを true に設定すると、これと同じ動作が Window に存在します。

特別なプロパティを持たない新しいコントロールでこの動作をシミュレートできることに注意してください。新しいコントロールと新しいウィンドウの両方でテストしました。

どんな助けでも大歓迎です。

編集

これは、WebBrowser が DesignMode = On に設定されている場合に発生します。

4

2 に答える 2

4

WebBrowser は、ネイティブの WPF コントロールではありません。実際には、ActiveX WebBrowser コントロールを内部的に作成しているだけです。HwndHost (WebBrowser など) は、レイヤード ウィンドウを有効にする (つまり、WS_EX_LAYERED スタイルを含む) ため、 AllowsTransparencyが trueである Window/Popup に配置することはできません。

于 2012-04-12T17:15:35.597 に答える
-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>
 ......
于 2012-04-12T03:15:00.620 に答える