2008-12-03 78 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的佈局邏輯是這樣的,它會給孩子們在某個方向(垂直於他們所要求的方向)提供足夠的空間。這就是爲什麼你會看到奇怪的佈局問題。

相關問題