自分のブログ名

sheephumanのブログ

ひつじ好きな人間のブログ。

WPF GridSplitterの凡例(使い方)

GridSplitterの縦分割・横分割に関する解説。
とりあえずサクッと動くモノを。
WinFormのSplitContainerに相当するが、使用感は大分異なる。Visual Studioでのプロパティ設定も可能だが、それほど素直に動いてくれない。
 間違ったCodingをすると見た目上、非表示化する。




参考
resanaplaza.com

横分割(Column)

下記 コード 

            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <GridSplitter Grid.Column ="0" Background="Blue" Width="10"/>
                <Button Grid.Column="0" Margin="0,0,5,0" Content="test1" Height="20" Width="50"/>
                <Button Grid.Column="1" Margin="0,0,5,0" Content="test2" Height="20" Width="50"/>
            </Grid>

縦分割(ROW)

 横分割ほど素直に動いてくれない
色々試行錯誤して以下のようになった。

<Grid.RowDefinitions>

HorizontalAlignment="Stretch" 

 プロパティを付けるなどが必要。

 <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition Height="5" />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <GridSplitter Grid.Row="1"  HorizontalAlignment="Stretch" Background="Aqua"/>
                <Button Grid.Row ="0" Content="test1" Height="20" Width="50"/>
                <Button Grid.Row ="3" Margin="0,0,5,0" Content="test2" Height="20" Width="50"/>
 </Grid>

画像


MSDNドキュメントのサンプルコードもあるが分かりにくい。

コントロールを配置する

<Button Grid.Row ="0" Content="test1" Height="20" Width="50"/>

各コントロールのプロパティにGrid.Row ="0" などと付ける。Column(横)とRow(縦)でカウントの仕方(というか配置)が違う。参考URLが詳しい。