Home > DeveloperSection > Forums > Grid Splitter problem in WPF
Ankita Pandey
Ankita Pandey

Total Post:183

Points:1285
Posted on    August-16-2013 6:30 AM

 WPF WPF 
Ratings:


 1 Reply(s)
 2056  View(s)
Rate this:
Hi Developers!

I want a layout like VS 2008. In which I want two columns and second columns is again split into two.

I done that in the xaml mentioned below, but the GridSplitter is not visible vertically ( which split two columns).

I want both the GridSplitters to be resizable. One GridSplitter resizes the Left Hand Pane and Right Hand Pane and another GridSplitter resizes the subgrid's top pane and right pane.

The Second GridSplitter is working through this XAML but I am not able to produce XAML code that Splits the Right hand Pane and Left hand pane.Pleas Help!!

<Window x:Class="AlarmUI_2.Window1"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="Window1" Height="300" Width="300">

    <Grid>

        <Grid.ColumnDefinitions>

            <ColumnDefinition Width="*"/>

            <ColumnDefinition Width="*"/>

        </Grid.ColumnDefinitions>

        <StackPanel Background="Aqua" Grid.Column="0" >

            <TextBlock FontSize="35" Foreground="#58290A"

                       TextWrapping="Wrap">Left Hand Side</TextBlock>

        </StackPanel>

        <GridSplitter Grid.Column="0" ResizeDirection="Auto"

                      Grid.RowSpan="1"

                      HorizontalAlignment="Stretch"

                      VerticalAlignment="Center"/>

        <Grid Grid.Column="1">

            <Grid.RowDefinitions>           

                <RowDefinition Height="*" />

                <RowDefinition Height="*" />

            </Grid.RowDefinitions>

            <ListBox Grid.Row="0" Background="Red">

                <ListBoxItem>Hello</ListBoxItem>

                <ListBoxItem>World</ListBoxItem>

            </ListBox>

            <GridSplitter Grid.Row="1" Height="5" Background="Gray"

                          VerticalAlignment="Top" HorizontalAlignment="Stretch" />

            <ListBox Grid.Row="1" Background="Violet" Margin="0,5,0,0">

                <ListBoxItem>Hello</ListBoxItem>

                <ListBoxItem>World</ListBoxItem>

            </ListBox>

        </Grid>

    </Grid>

</Window>

Please help me!



shreesh chandra shukla
shreesh chandra shukla

Total Post:105

Points:735
Posted on    August-17-2013 6:46 AM

Hi!

Change your vertical Splitter to 

<GridSplitter Grid.Column="0" Width="5" ResizeDirection="Auto"

            Grid.RowSpan="1"

            HorizontalAlignment="Right"

            VerticalAlignment="Stretch"/> 

This will be much better way to use GridSplitter 

<Grid>

    <Grid.ColumnDefinitions>

        <ColumnDefinition Width="*"/>

        <ColumnDefinition Width="5"/>

        <ColumnDefinition Width="*"/>

    </Grid.ColumnDefinitions> 

    <StackPanel Background="Aqua" Grid.Column="0" >

        <TextBlock FontSize="35" Foreground="#58290A"

           TextWrapping="Wrap">Left Hand Side</TextBlock> 

    </StackPanel>

    <GridSplitter Grid.Column="1" HorizontalAlignment="Stretch"/> 

    <Grid Grid.Column="2">

        <Grid.RowDefinitions>

            <RowDefinition Height="*" />

            <RowDefinition Height="5" />

            <RowDefinition Height="*" />

        </Grid.RowDefinitions>

        <ListBox Grid.Row="0" Background="Red">

            <ListBoxItem>Hello</ListBoxItem>

            <ListBoxItem>World</ListBoxItem>

        </ListBox>

        <GridSplitter Grid.Row="1" Background="Gray" HorizontalAlignment="Stretch"/>

        <ListBox Grid.Row="2" Background="Violet">

            <ListBoxItem>Hello</ListBoxItem>

            <ListBoxItem>World</ListBoxItem>

        </ListBox>

    </Grid>

</Grid>


Don't want to miss updates? Please click the below button!

Follow MindStick