2012-04-03 83 views
5

我有一個菜單和滾動查看器裏面的網格。在scrollviewer中我有一個groupbox與另一個網格和一個webbrowser元素。WPF c#webbrowser滾動頂部菜單

現在問題出現,當我讓我的窗口小於我的瀏覽器內容的內容,並向下滾動scrollviewer。一切都有餘量,因此它保持在頂層菜單下,但是webbrowser元素不會,因此覆蓋了菜單。有沒有辦法解決這個問題?我無法弄清楚:s邊緣&填充不起作用。我希望圍繞它的網格元素或其他東西可以做到這一點,但沒有任何效果。

編輯:

好,我嘗試添加的XAML代碼,但請記住它是出奇的巨大,所以這是極短的版本:(網頁瀏覽器元素是在代碼的底部)

<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

你可以發佈你的xaml嗎? – 2012-04-03 14:13:26

+0

好的,爲答案添加了xaml代碼 – WtFudgE 2012-04-03 14:41:54

回答

2

WPF WebBrowser控件基本上是舊的Win32 Webbrowser控件,並且在技術上呈現在WPF內容之上。另外它在計算大小時有一些嚴重的問題。

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

恐怕沒有辦法告訴WebBrowser控件來改變這種行爲。

但也有替代控制在那裏:

http://wpfchromium.codeplex.com/

http://awesomium.com/

編輯:

發現這裏SO很大總結其中指出了一些備選方案:

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

+0

的輕版本+1,如果可以的話,爲編輯+1 – Gabber 2012-04-04 09:34:14