Le navigateur WPF est là, mais invisible
Je suis en essayant d'utiliser le Navigateur de contrôle dans un très simple application WPF, et il semble que, bien que le navigateur charge la page que j'ai demandé (je peux mouseover images et de voir les balises ALT), je ne peux pas vraiment voir autre chose:
Voici le code XAML pour l'application:
<Window x:Class="SmokeyBox2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SmokeyBox" Height="120" Width="510" ShowInTaskbar="False"
SizeToContent="WidthAndHeight" WindowStyle="None" AllowsTransparency="True"
MouseLeftButtonDown="Window_MouseLeftButtonDown">
<Border Background="#50FFFFFF" CornerRadius="5" BorderThickness="2,0,2,2"
Padding="5 1 5 5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Background="Transparent" Content="SmokeyBox"
MouseLeftButtonDown="Label_MouseLeftButtonDown" />
<TextBox Grid.Row="1" Grid.Column="0" Name="searchText" Width="450" FontFamily="Arial" Foreground="DarkGray"
Background="Transparent" FontSize="20" MouseLeftButtonDown="searchText_MouseLeftButtonDown"
BorderBrush="Transparent" />
<Expander Grid.Row="1" Grid.Column="1" Padding="2 3 0 0 " Expanded="Expander_Expanded"
Collapsed="Expander_Collapsed" />
<WebBrowser Grid.Row="2" Grid.Column="0" x:Name="browser" Visibility="Visible"
Width="480" Height="480" Margin="2 2 2 2" ></WebBrowser>
</Grid>
</Border>
</Window>
Si quelqu'un peut m'aider à comprendre pourquoi le navigateur n'est pas en montrant le Yahoo! page d'accueil comme je l'avais demandé? Et pendant que j'y suis, je vais le propre du fait que c'est ma première application WPF, et j'aimerais entendre des indications générales sur la façon de se débarrasser du général noobie la méchanceté dans mon XAML.
Grâce.
source d'informationauteur Adam Crossland | 2010-05-31
Vous devez vous connecter pour publier un commentaire.
Juste une réponse rapide, malheureusement, à se faire tard...
Vous devez définir AllowsTransparency="False" 🙂
WPF WebBrowser ne fonctionne pas avec AllowsTransparency="True".
Vous êtes réglage de la
WebBrowser.Source
propriété? J'ai essayé le code XAML suivant dans Kaxaml et il a bien fonctionné:En général XAML newbie conseils:
Height
etWidth
et au lieu d'apprendre comment les commandes de mise en page de travail (DockPanel, StackPanel, Grille, etc). Si vous voulez vraiment faire appliquer quelque chose à leur taille, à examiner si l'aideMinWidth
etMinHeight
permettrait de réaliser ce que tu voulais mieux.TextBlock
surLabel
pour des morceaux de texte sur l'écran. Votre kilométrage peut varier, mais la plupart des exemples d'utilisationTextBlock
dans mon expérience.MODIFIER
J'ai mis en place un tracé alternatif pour vous éviter l'utilisation de
Grid
:Vous pouvez aller à travers et mettre à jour les marges d'avoir l'air comme vous le souhaitez.
Aussi, à partir de votre capture d'écran, il est clair que vous avez un peu d'autres styles/templates jouer un rôle ici que le XAML ne correspond pas à ce que l'on constate dans l'image. Peut-être que les valeurs provenant de ces styles sont gâcher avec votre contrôle.
Je viens de trouver une solution sur ce blog. Fondamentalement, il montre juste une autre fenêtre sur le dessus de l'endroit où la WebControl est censé être... c'est un peu sale, mais il fonctionne très bien 🙂
C'est une vieille question, mais je voulais poster ce que j'ai fait pour arriver à ce travail.
Lorsque vous souhaitez créer une fenêtre sans bordure est redimensionnables et est en mesure d'accueillir un contrôle WebBrowser ou d'un Cadre de contrôle pointu à une URL que vous ne pouvait tout simplement pas, le contenu du dit contrôle de montrer vide que l'OP a dit.
J'ai trouvé une solution de contournement si, dans la Fenêtre, si vous définissez la WindowStyle à Aucun, ResizeMode à NoResize (ours avec moi, vous serez toujours en mesure de redimensionner une fois fait), alors assurez-vous d'avoir DÉCOCHÉ AllowsTransparency vous aurez une statique de la taille de la fenêtre sans frontière et le contrôle du navigateur.
Maintenant, vous avez probablement vous voulez toujours être en mesure de redimensionner droit? Eh bien, nous pouvons à celle d'un appel d'interopérabilité:
Et voila, UNE fenêtre WPF avec pas de frontière et encore déplaçable et redimensionnable sans perte de compatibilité avec les commandes comme WebBrowser
J'ai eu ce même problème et trouvé ce post. Personne n'a précisé la réponse comme correcte. Je n'ai pas les points mais simplement de faire un commentaire. Le AllowsTransparency="False" doit être appliqué à la XAML Fenêtre de la balise. Exemple:
Il a fallu un peu de creuser et d'enquête pour comprendre, mais avec cet ensemble de mes questions avec l'invisible contrôle de navigateur ont été atténués.