Silverlight 4 / WPF - вложенная панель ScrollViewer, которая масштабируется с доступным размером экрана - PullRequest
1 голос
/ 27 января 2011

В мире Windows Forms вы можете взять панель и установить ее свойство закрепления для заполнения и т. Д. С помощью вложенных панелей, когда пользователь изменяет размер окна, размеры панелей и вложенных панелей автоматически изменяются. Я хочу добиться чего-то похожего с Silverlight, вот моя текущая структура.

Main
  ScrollViewer // for body
    UserControl 
      Grid
       control 
       Scrollviewer // this is where my problem is
       Control

Проблема в том, что я могу установить размер для вложенной программы просмотра с прокруткой, которая выглядит хорошо для разрешения 1024, но я также хочу учитывать пользователей с более высоким разрешением. Если я оставлю это автоматически, контент просто растянется ниже видимой нижней строки и перейдет на верхний уровень ScrollViewer.

Если бы я мог добиться чего-то аналогичного тому, как Windows Forms справляется с этим с помощью стыковки, я думаю, что моя проблема была бы решена. У меня должен быть ScrollViewer для вложенной панели, и я хочу, чтобы он заполнил все visible space слева. Как я могу добиться этого с SL4 или WPF?

[Изменить] Вот иллюстрация того, что я после. enter image description here

1 Ответ

1 голос
/ 28 января 2011

ScrollViewer верхнего уровня позволяет его содержимому быть настолько большим, насколько это необходимо, и добавляет полосы прокрутки, если это означает, что они не помещаются в окне. Его дети больше не знают или не заботятся о том, как высоко окно; они просто знают, что у них есть столько места, сколько они хотят.

Так что же вы хотите от своего вложенного ScrollViewer? У него есть все необходимое пространство, поэтому он будет расти, чтобы показать весь свой контент - ничто не ограничит его высотой окна. Фактически, вы добавили ScrollViewer верхнего уровня, который специально сказал ему: « не ограничивайте его высотой окна».

Если вы хотите, чтобы ваш внутренний ScrollViewer был ограничен высотой окна, тогда уберите ScrollViewer верхнего уровня.

...