2012-04-03 50 views
5

Tôi có một lưới với một menu và một scrollviewer bên trong. Trong scrollviewer tôi có một groupbox với một grid khác và bên trong một phần tử webbrowser.WPF C# webbrowser cuộn qua menu trên cùng

Bây giờ vấn đề phát sinh khi tôi làm cho cửa sổ của tôi nhỏ hơn nội dung của nội dung webbrowser của tôi và cuộn xuống trong trình xem ảnh. Mọi thứ đều có lề nên nó nằm bên dưới trình đơn trên cùng, tuy nhiên phần tử webbrowser thì không, do đó bao gồm cả menu. Có cách nào để giải quyết này? Tôi không thể tìm ra: s Margins & Paddings không hoạt động. Tôi đã hy vọng yếu tố lưới xung quanh nó hoặc một cái gì đó sẽ làm các trick, nhưng không có gì hoạt động.

EDIT:

Ok Tôi cố gắng để thêm mã XAML nhưng nhớ đó là điên rồ rất lớn, vì vậy đây là phiên bản ngắn cực: (yếu tố webbrowser là ở dưới cùng của mã)

<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

Bạn có thể đăng xaml của mình không? –

+0

ok, đã thêm phiên bản nhẹ của mã xaml – WtFudgE

Trả lời

2

Điều khiển WPB WebBrowser về cơ bản là điều khiển Webbrowser Win32 cũ và được hiển thị kỹ thuật trên nội dung WPF. Ngoài ra nó có một số vấn đề nghiêm trọng với tính toán kích thước.

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

Tôi sợ không có cách nào để nói với Control WebBrowser để thay đổi hành vi đó.

Nhưng có điều khiển thay thế ngoài kia:

http://wpfchromium.codeplex.com/

http://awesomium.com/

Edit:

Tìm thấy một bản tóm tắt tuyệt vời ở đây trên SO trỏ tới một số lựa chọn thay thế:

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

+0

+1 cho câu trả lời và nếu có thể, +1 cho bản chỉnh sửa – Gabber

Các vấn đề liên quan