Scrollviewer, имеющий проблемы с Dockpanel - PullRequest
1 голос
/ 28 ноября 2011

http://images.temppic.com/28-11-2011/images_vertis/1322454731_0.87909400.png

Я использую Dockpanel в качестве основной панели для моего макета. Панель инструментов сверху установлена ​​сверху, а боковая панель слева. Программа просмотра документов настроена на заполнение LastChildFill.

Проблема в том, что высота прокрутки не масштабируется при изменении размера окна. Только просмотрщик документов делает. По-видимому, масштабируется только по мере увеличения дочернего контента. Я пытаюсь имитировать макет печати 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 Ответ

1 голос
/ 28 ноября 2011

Установите VerticalAlignment="Stretch" или удалите атрибут, и все будет в порядке.

DockPanel влияет только на одно направление для закрепленных детей.В вашем случае он горизонтальный.

...