2016-04-25 42 views
1

私はこの単純なXAMLWPF複数GridSplittersと「スター・幅」欄

<Grid x:Name="LayoutRoot" Background="White" HorizontalAlignment="Stretch"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="100"/> 
     <RowDefinition Height="100"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="Auto"/> 
    </Grid.ColumnDefinitions> 

    <Rectangle Grid.Column="0" Fill="LightCoral" MinWidth="100"/> 
    <Rectangle Grid.Column="1" Fill="LightBlue" MinWidth="100"/> 
    <Rectangle Grid.Column="2" Fill="LightCoral" MinWidth="100"/> 
    <Rectangle Grid.Column="3" Fill="Gray" MinWidth="100"/> 
    <Rectangle Grid.Column="4" Fill="LightCoral" MinWidth="100"/> 

    <GridSplitter Grid.Column="0" Grid.RowSpan="2" Width="10" HorizontalAlignment="Right" VerticalAlignment="Stretch"/> 
    <GridSplitter Grid.Column="1" Grid.RowSpan="2" Width="10" HorizontalAlignment="Right" VerticalAlignment="Stretch"/> 
    <GridSplitter Grid.Column="2" Grid.RowSpan="2" Width="10" HorizontalAlignment="Right" VerticalAlignment="Stretch"/> 
    <GridSplitter Grid.Column="3" Grid.RowSpan="2" Width="10" HorizontalAlignment="Right" VerticalAlignment="Stretch"/> 
    <GridSplitter Grid.Column="4" Grid.RowSpan="2" Width="10" HorizontalAlignment="Right" VerticalAlignment="Stretch"/> 

</Grid> 

この1つはうまく動作しますが、私は2番目の列(水色の四角形を保持しているもの)を持つようにしたい持っている - 埋めるためにすべての利用可能な幅。 2番目のColumnDefinition.Width = "*" - GridSplittersを右側に設定すると、灰色の長方形のGridSplitterと言うことができます。 DataGridの列ヘッダーのように動作するようにGridSplittersを作成することは可能ですか?

答えて

1

いいえ、私はほとんど変化が見られない、あなたのGridSplitterコントロール

<Grid x:Name="LayoutRoot" Background="White"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="100"/> 
     <RowDefinition Height="100"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="3*"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 

    <Rectangle Grid.Column="0" Fill="LightCoral" MinWidth="100"/> 
    <Rectangle Grid.Column="2" Fill="LightBlue"/> 
    <Rectangle Grid.Column="4" Fill="LightCoral" MinWidth="100"/> 
    <Rectangle Grid.Column="6" Fill="Gray" MinWidth="100"/> 
    <Rectangle Grid.Column="8" Fill="LightCoral" MinWidth="100"/> 

    <GridSplitter Grid.Column="1" Grid.RowSpan="2" 
        Width="10" HorizontalAlignment="Right" VerticalAlignment="Stretch" 
        ResizeDirection="Columns" ResizeBehavior="PreviousAndNext"/> 
    <GridSplitter Grid.Column="3" Grid.RowSpan="2" 
        Width="10" HorizontalAlignment="Right" VerticalAlignment="Stretch" 
        ResizeDirection="Columns" ResizeBehavior="PreviousAndNext"/> 
    <GridSplitter Grid.Column="5" Grid.RowSpan="2" 
        Width="10" HorizontalAlignment="Right" VerticalAlignment="Stretch" 
        ResizeDirection="Columns" ResizeBehavior="PreviousAndNext"/> 
    <GridSplitter Grid.Column="7" Grid.RowSpan="2" 
        Width="10" HorizontalAlignment="Right" VerticalAlignment="Stretch" 
        ResizeDirection="Columns" ResizeBehavior="PreviousAndNext"/> 

</Grid> 
+0

用に別の列を作成します。少なくともColumnDefinition [2] .Width = "*"を設定しようとすると、それでもやはり正しく動作しません。 –

+0

@AlexeyTitov "間違っている"とはどういう意味ですか? –

+0

@AlexeyTitov私はあなたが何を意味するかを見ることができると思う。列の幅に*を使用できますか?私はこれがあなたが現在持っているのと同じ初期カラムサイジングを持たないことを知っていますが、それはより良く機能します。 –