2011-11-28 70 views
1

http://images.temppic.com/28-11-2011/images_vertis/1322454731_0.87909400.png
的ScrollViewer有問題與DockPanel中

我使用一個DockPanel中作爲我對我的佈局主面板。頂部的工具欄設置爲頂部,而側面板設置爲左側。 documentviewer被設置爲由LastChildFill填充。

問題是,當窗口大小調整時,scrollviewer的高度不會縮放。只有文檔查看器可以。這似乎只是隨着孩子內容的增加而擴大。我試圖模仿Google Chrome的打印佈局。當孩子沒有溢出窗口,那麼沒有滾動條,但如果它小於窗口,滾動條將填滿窗口。

下面的代碼:

<ToolBar Width="Auto" Height="35" DockPanel.Dock="Top" VerticalAlignment="Top" HorizontalAlignment="Stretch" Panel.ZIndex="10" Background="White"> 

<StackPanel Margin="5,0,0,0" Orientation="Horizontal"> 
    <Button Content="New" Style="{StaticResource MenuItem}"/> 
    <Button Content="Save" Style="{StaticResource MenuItem}"/> 
    <Button Content="Print" Style="{StaticResource MenuItem}"/> 
    <Button Content="Delete" Style="{StaticResource MenuItem}"/> 
    <Button Content="Export" Style="{StaticResource MenuItem}"/> 
    <Border Style="{StaticResource SeparatorStyle}"/> 
    <Button Content="Burn DVD" Style="{StaticResource MenuItem}"/> 
    <Button Content="Open Folder" Style="{StaticResource MenuItem}"/> 
    <Border Style="{StaticResource SeparatorStyle}"/> 
    <Button Content="Next Patient" Style="{StaticResource MenuItem}"/> 
</StackPanel> 

</ToolBar> 

<ScrollViewer Background="White" x:Name="SidePanel" HorizontalAlignment="Left" Margin="0" VerticalAlignment="Top" Width="400" DockPanel.Dock="Left" Panel.ZIndex="2" Padding="10"> 
<StackPanel> 
    <StackPanel.Resources> 
    <Style TargetType="{x:Type TextBox}"> 
     <Setter Property="Margin" Value="0,10,0,0"/> 
    </Style> 
    </StackPanel.Resources> 
<Label Content="Patient Report" Style="{StaticResource SidePanel_H1}" /> 
<Rectangle Style="{StaticResource SidePanel_HR}" /> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 
<TextBox Text="DATA"/> 

</StackPanel> 
</ScrollViewer> 

<Rectangle Height="Auto" Width="2" DockPanel.Dock="Left" Fill="#FFA0A0A0"/> 

<DocumentViewer x:Name="dv1" AllowDrop="False" Cursor="Hand" Loaded="dv1_Loaded" MinWidth="600"> 
    <FixedDocument Focusable="False" x:Name="FD"> 
    </FixedDocument> 
</DocumentViewer> 


</DockPanel> 

回答

1

設置VerticalAlignment="Stretch"或刪除屬性,你會沒事的。

DockPanel僅影響停靠的兒童的一個方向。在你的情況下,它是水平的。

+0

謝謝!這真的很好。另外,如果內容沒有溢出,是否有一種簡單的方法可以取出滾動條?有點像可見的如果需要。 –

+0

請參閱[Horizo​​ntalScrollbarVisibility](http://msdn.microsoft.com/zh-cn/library/system.windows.controls.scrollviewer.horizo​​ntalscrollbarvisibility.aspx)和[VerticalScrollbarVisibility](http://msdn.microsoft.com/zh-cn/ -us /庫/ system.windows.controls.scrollviewer.verticalscrollbarvisibility.aspx) –