WPF: макет Вопрос - PullRequest
       6

WPF: макет Вопрос

1 голос
/ 27 января 2010

Мой пользовательский элемент управления имеет два подэлемента управления, список и подробности.

  • Когда в списке ничего не выбрано, я хочу, чтобы список заполнил весь элемент управления
  • Когда что-то выбрано, я хочу, чтобы список заполнил верхнюю половину, а элемент управления детализацией - нижнюю половину.

Динамическое изменение видимости на элементе управления детали легко. Я застрял на том, как изменить размер списка.

Ответы [ 3 ]

1 голос
/ 27 января 2010

Как вы меняете видимость? Если вы поместите ваши субконтроли в сетку со следующими RowDefinitions:

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

со списком в первой строке и подробным элементом управления во второй, а затем настройка Visibility = Collapsed подробного элемента управления автоматически изменяет размер списка.

1 голос
/ 27 января 2010

Станислав дал мне идею. Используйте сетку из двух рядов, но не устанавливайте высоту. Вместо этого установите верхний элемент управления RowSpan на обе половины экрана.

Верхний контроль:

Grid.RowSpan="{p:PyBinding 1 if ($[MainList.SelectedIndex] > -1) else 2}"

Нижний контроль:

Visibility="{p:PyBinding BooleanToVisibility($[MainList.SelectedIndex] > -1)}"
0 голосов
/ 27 января 2010

Разве вы не можете просто поместить список в <Border> или <Grid> или что-то еще и просто изменить его размер?Или, если вам нужны полосы прокрутки, вы можете поместить их в <ScrollViewer>.

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