2012-04-03 30 views
5

Tengo una cuadrícula con un menú y un scrollviewer dentro. En el scrollviewer tengo un groupbox con otra grilla y dentro de un elemento webbrowser.WPF C# webbrowser se desplaza sobre el menú superior

Ahora el problema surge cuando hago que mi ventana sea más pequeña que el contenido del contenido de mi webbrowser, y me desplazo hacia abajo en el scrollviewer. Todo tiene un margen, por lo que permanece debajo del menú superior, sin embargo, el elemento webbrowser no lo hace, por lo tanto, cubre el menú. ¿Hay una manera de resolver esto? No puedo entenderlo: s Márgenes & Las almohadillas no funcionan. Esperaba que el elemento de la rejilla alrededor o algo hiciera el truco, pero nada funciona.

EDIT:

Ok He intentado añadir el código XAML pero hay que tener en cuenta que era increíblemente enorme, así que esta es la versión corta extrema: (elemento de navegador web es en la parte inferior del código)

<Window x:Class="Cleaning_Masters_Official.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Cleaning Masters Offerte Packet - nieuw.off" Name="Main" Width="{DynamicResource {x:Static SystemParameters.MaximizedPrimaryScreenWidthKey}}" 
     Icon="bin\Debug\Images\Main.ico" 
    Height="{DynamicResource {x:Static SystemParameters.MaximizedPrimaryScreenHeightKey}}" Closing="Main_Closing" 
    WindowStartupLocation="CenterScreen" WindowStyle="SingleBorderWindow" WindowState="Maximized"> 

    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="22" /> 
      <RowDefinition Height="*" /> 
      <RowDefinition Name="rowbar" Height="0" /> 
     </Grid.RowDefinitions> 

     <ScrollViewer Margin="10" Grid.Row="1"> 
      <TabControl Name="tabChapters"> 

       <TabItem Header="Algemeen" Name="tabGeneral"> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*" /> 
          <ColumnDefinition Width="*" /> 
          <ColumnDefinition Width="*" /> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="auto" /> 
          <RowDefinition Height="*" /> 
         </Grid.RowDefinitions> 

         <GroupBox Header="Configureer hoofdstukken:" Margin="10" Padding="10"> 
          <Grid> 
           ...  
          </Grid> 
         </GroupBox> 

         <GroupBox Header="Voorpagina Afbeeldingen:" Margin="10,0,10,10" Padding="10" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2"> 
          <Grid VerticalAlignment="Top"> 
           ...  
          </Grid> 
         </GroupBox> 

         <GroupBox Header="Offerte Info:" Margin="10,10,10,10" Padding="10" Grid.Column="1" Grid.Row="0"> 
          <Grid> 
           ...  
          </Grid> 
         </GroupBox> 

         <GroupBox Margin="0,10,10,10" Header="Inhoudstafel:" Grid.Column="2" Grid.RowSpan="2"> 
          <Grid> 
           <WebBrowser Margin="10" Name="wbInhoudstafel"/> 
          </Grid> 
         </GroupBox> 
        </Grid> 
       </TabItem> 

       <TabItem Header="1. Voorwoord" Name="tabVoorwoord"> 
       </TabItem> 
        ...   
       </TabItem> 
      </TabControl> 
     </ScrollViewer> 

     <Menu DockPanel.Dock="Top" Name="TopMenu"> 
      ...  
     </Menu> 

     <StatusBar Name="sbar" Grid.Row="2" 
      ...  
     </StatusBar> 
    </Grid> 
</Window> 
+0

¿Puedes publicar tu xaml? –

+0

bien, agregué una versión ligera del código xaml – WtFudgE

Respuesta

2

El control WPF WebBrowser es básicamente el viejo control Webbrowser Win32 y se representa técnicamente por encima del contenido de WPF. Además, tiene algunos problemas serios con los cálculos de tamaño.

Ver http://msdn.microsoft.com/en-us/library/aa970688(v=vs.85).aspx

Me temo que no hay manera de saber el control WebBrowser para cambiar ese comportamiento.

Pero hay controles alternativos por ahí:

http://wpfchromium.codeplex.com/

http://awesomium.com/

Editar:

encontrado un gran resumen aquí en la SO que apunta a algunas alternativas:

WPF WebBrowser (3.5 SP1) Always on top - other suggestion to display HTML in WPF

+0

+1 para la respuesta, y, si pudiera, +1 para la edición – Gabber

Cuestiones relacionadas