2012-04-12 3 views
2

私はアプリケーションで、ポップアップを利用したいコントロールがあります。それにはWebBrowserコントロールが含まれています。ポップアップAllowTransparencyがWebBrowserの子を殺しています

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

.AllowsTransparency = true; 

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

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

この動作を特別なプロパティを持たない新しいコントロールでシミュレートすることができます。私は新しいコントロールと新しいウィンドウの両方でテストしました。

何か助けていただければ幸いです。

編集

WEBブラウザがのdesignMode =オンに設定されている場合に発生します。

答えて

3

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

+0

私はこれをここに追加して私の質問を編集します。デザインモードがオンに設定されているときに問題が発生すると思います。これは主に、Webブラウザーコントロールが消えるときです。最初はこれを提供していないという理由で両方のアンサーのポスターにお詫び申し上げます。 – meanbunny

-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コントロールでこれをテストしましたか?新しいソリューションで提供した次のコードを実装しましたが、Webブラウザーコントロールはまだ消えています。他のすべてのコンテンツは、ボタン、テキストブロックなどを含めて問題ありません。 – meanbunny

+0

ちょうど今しました。 –

関連する問題