2017-01-31 9 views
0

分割ツールで列のサイズを変更したり、各列のコントロールを同時にサイズ変更できるように、TabItemに列を追加するにはどうすればよいですか?XAMLを使用する方法

次のXAMLを作成しました。スプリッターのサイズが変更されたときにボタンが各列のサイズを変更すると思った。

<Grid Background="LightBlue"> 
     <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 
     <DockPanel Grid.Row="0" > 
     <StackPanel> 
      <TextBlock Text="Multiple items go here as the header" /> 
     </StackPanel> 
     </DockPanel> 
     <TabControl Grid.Row="1" Background="Beige" > 
     <TabItem x:Name="Tab1" Header="Tab One" > 
      <DockPanel> 
      <StackPanel DockPanel.Dock="Top"> 
       <TextBlock Text="Header for this tab goes here" /> 
      </StackPanel> 
      <Grid> 
       <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="100" /> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="100" /> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 
       <GridSplitter Grid.Column="1" VerticalAlignment="Stretch" 
          Background="Aqua" Width="4" /> 
       <GridSplitter Grid.Column="3" VerticalAlignment="Stretch" 
          Background="Aqua" Width="4" /> 
       <StackPanel Grid.Column="0" > 
       <Button Content="Column 1" /> 
       </StackPanel> 
       <StackPanel Grid.Column="2" > 
       <Button Content="Column 2" /> 
       </StackPanel> 
       <StackPanel Grid.Column="4" > 
       <Button Content="Column 3" /> 
       </StackPanel> 
      </Grid> 
      </DockPanel> 
     </TabItem> 
     <TabItem x:Name="Tab2" Header="Tab Two" ></TabItem> 
     <TabItem x:Name="Tab3" Header="Tab Three" ></TabItem> 
     </TabControl> 
    </Grid> 

答えて

1

GridSplittersにResizeBehavior="PreviousAndNext"を追加するだけで動作します。

GridSplitter.ResizeBehavior Propertyのデフォルト値は

スペースがたHorizo​​ntalAlignmentとVerticalAlignmentをプロパティの値に基づいて再分配されることを意味GridResizeBehavior.BasedOnAlignmentです。

どういう意味ですか。しかし、あなたは水平GridSplitterについては

を意味しているPreviousAndNextをしたい、スペースがGridSplitterに指定された行の上や下にある列の間に再分配されます。縦型GridSplitterの場合、GridSplitterに指定された列の左右にある列の間にスペースが再配置されます。

関連する問題