2012-04-12 11 views
2

So habe ich ein Steuerelement in meiner Anwendung, die ich das Popup für verwenden wollte. Es hat ein WebBrowser-Steuerelement, das ein Teil davon ist.Popup AllowTransparency killt WebBrowser Kind

Ich stelle fest, dass jedes Mal, wenn ich die folgende Eigenschaft einstelle, nur das WebBrowser-Steuerelement auf meinem benutzerdefinierten Steuerelement verschwindet.

.AllowsTransparency = true; 

Allerdings, wenn ich die Eigenschaft entfernen, sieht die Kontrolle normal aus und funktioniert normal. Der einzige Grund, warum ich diese Eigenschaft setze, ist, dass das Steuerelement abgerundete Rahmen verwendet und das Popup-Steuerelement standardmäßig einen schwarzen Hintergrund hat.

Dasselbe Verhalten ist in einem Fenster vorhanden, wenn Sie die AllowsTransparency Eigenschaft auf True festlegen.

Nur zu beachten, dass Sie dieses Verhalten mit einem brandneuen Steuerelement ohne besondere Eigenschaften simulieren können. Ich habe sowohl an einem neuen Steuerelement als auch an einem neuen Fenster getestet.

Jede Hilfe wird geschätzt.

bearbeiten

Dies geschieht, wenn der Web-Browser auf Designmode = On gesetzt ist.

Antwort

3

Das WebBrowser ist keine native Steuerung WPF. Es erstellt nur intern ein ActiveX-WebBrowser-Steuerelement. HwndHost (wie WebBrowser) kann nicht in einem Fenster/Popup platziert werden, dessen AllowsTransparency True ist, da das Layered Windows aktiviert (d. H. Enthält den WS_EX_LAYERED-Stil).

+0

Ich werde dies hier hinzufügen und meine Frage bearbeiten. Ich denke, das Problem tritt besonders dann auf, wenn der Design-Modus aktiviert ist. Dies ist hauptsächlich der Fall, wenn das WebBrowser-Steuerelement nicht mehr angezeigt wird. Ich entschuldige mich bei beiden Antwortplakaten dafür, dass ich dies anfangs nicht zur Verfügung gestellt habe. – meanbunny

-1

Ich bin mir nicht sicher, was du da machst. Ohne Code ist es schwer zu sagen. Aber ich vermute, dass Sie nicht den Hintergrund der inneren Grenzkontrolle setzen. setzen Sie diesen Code einfach in einer neuen Lösung, und es sollte keine Probleme, alles ist sichtbar:

<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

Haben Sie dies mit einem WebBrowser-Steuerelement getestet? Ich habe den folgenden Code implementiert, den Sie in einer neuen Lösung bereitgestellt haben, und das WebBrowser-Steuerelement verschwindet weiterhin. Alle anderen Inhalte sind in Ordnung, einschließlich Schaltflächen, Textblock usw. – meanbunny

+0

gerade jetzt, funktioniert –