2008-12-03 94 views
1

我有两个关于我有窗口的大小问题。基本的布局是这样的与内容有关的窗口大小

<Window MaxHeight="{DynamicResource {x:Static SystemParameters.VirtualScreenHeight}}" 
     MaxWidth="{DynamicResource {x:Static SystemParameters.VirtualScreenWidth}}" 
     > 
    <StackPanel> 
     <DockPanel LastChildFill="False"> 
      <StackPanel DockPanel.Dock="Left" 
         Orientation="Horizontal"> 
       <!--Some buttons--> 
      </StackPanel> 
      <StackPanel DockPanel.Dock="Right" 
         Orientation="Horizontal"> 
       <!--Some buttons--> 
      </StackPanel> 
     </DockPanel> 
     <ScrollViewer> 
      <WrapPanel x:Name="Container"> 
      </WrapPanel> 
     </ScrollViewer> 
    </StackPanel> 
</Window> 

1)我如何使窗口水平比DockPanel的宽度更小?

2)如何让ScrollViewer限制在窗口的限制范围内?它的内容大小已经超出了窗口的范围。
它像是用来工作,当我有

<Window><ScrollViewer/></Window> 

,但我真的不希望滚动里面的DockPanel中。在目前的形式下,它甚至迫使Window打破了MaxHeight。

回答

2

我建议你使用带*长度的Grid而不是DockPanel和StackPanel。

1

只要摆脱那些StackPanel s。用Grid代替它们,你应该很好。 StackPanel的布局逻辑是这样的,它会给孩子们在某个方向(垂直于他们所要求的方向)提供足够的空间。这就是为什么你会看到奇怪的布局问题。