Сохранение позиции GridSplitter - PullRequest
4 голосов
/ 27 сентября 2010

У меня есть это:

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="50*" />
            <ColumnDefinition Width="5" />
            <ColumnDefinition Width="50*" />
        </Grid.ColumnDefinitions>
        <GridSplitter Background="{x:Static SystemColors.ControlBrush}"
          Grid.Column="1"
          Margin="0,0,0,0"
          Name="splitter"
          HorizontalAlignment="Stretch" />

Я пытаюсь сохранить и восстановить позицию разделителя. Я использую grid.ColumnDefinitions[0].Width, который возвращает ширину столбца в пикселях.

Когда я восстанавливаю позицию, как мне восстановить И сохранить настройку 50 *, чтобы при изменении размера окна размер колонки изменялся правильно?

1 Ответ

10 голосов
/ 27 сентября 2010

Свойство Ширина - это не просто double, это объект System.Windows.GridLength, который содержит свойство Значение (double) и GridUnitType свойство (GridUnitType), которое является enum. Итак, чтобы установить ширину вашей колонки на 50 *:

grid.ColumnDefinitions[0].Width = new GridLength(50, GridUnitType.Star)

Для сохранения и восстановления все, что вам нужно сделать, это сохранить значение и GridUnitType для каждого столбца.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...