Gridsplitter не отображается - PullRequest
       3

Gridsplitter не отображается

6 голосов
/ 18 августа 2011

Я новичок в WPF. Я объявил свой Grid так:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"></ColumnDefinition>
    <ColumnDefinition Width="5"></ColumnDefinition>
    <ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
     <Grid.RowDefinitions>
         <RowDefinition Height="*"></RowDefinition>
         <RowDefinition Height="*"></RowDefinition>
         <RowDefinition Height="*"></RowDefinition>
     </Grid.RowDefinitions>
</Grid>

Я хочу, чтобы 3-й столбец шириной 5 был GridSplitter и имел возможность изменять размер для левого и правого столбцов Итак, у меня есть этот код для сплиттера:

<GridSplitter Grid.Column="1" Grid.RowSpan="3" ResizeDirection="Columns" Height="Auto"
              VerticalAlignment="Stretch" HorizontalAlignment="Center"
              Margin="0" Background="Black"/>

Я не вижу GridSplitter в столбце. Я правильно настроил? Благодаря.

Ответы [ 2 ]

5 голосов
/ 18 августа 2011

У вас есть GridSplitter в его столбце, но ширина не определена. Таким образом, вы эффективно центрируете его с нулевой шириной. Выглядит так, как будто у вас есть две сетки, где вам понадобится одна.

Похоже, вы хотите что-то вроде этого:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
    </Grid.RowDefinitions>

    <GridSplitter Grid.Column="1" Grid.RowSpan="3" ResizeDirection="Columns" Height="Auto"
         Width="5" VerticalAlignment="Stretch" Margin="0" Background="Black"/>

</Grid>

Если вам нужна вложенная таблица, вам может понадобиться продублировать определения столбцов.

0 голосов
/ 18 августа 2011

Я только что запустил этот XAML, и он отлично работает

<Grid >
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="5"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>


    <Grid.RowDefinitions>
        <RowDefinition Height="*"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
        <RowDefinition Height="*"></RowDefinition>
    </Grid.RowDefinitions>

    <TextBox Grid.Column="0" MinWidth="100" />
    <GridSplitter Grid.Column="1" Grid.RowSpan="3" ResizeDirection="Columns" HorizontalAlignment="Stretch" />

    <TextBox Grid.Column="2" MinWidth="100" />
</Grid>

Вы уверены, что хотите поместить три строки в 0-й столбец?потому что это бессмысленнопомещено в колонку 0.

Я думаю, что вы хотите сделать, это первый XAML, который я написал

...