Начальное горизонтальное смещение Silverlight ScrollViewer - PullRequest
2 голосов
/ 06 января 2010

У меня есть вопрос, касающийся установки свойства HorizontalOffset (с помощью метода ScrollToHor horizontalOffset).

После запуска моего приложения контент для средства просмотра прокрутки создается динамически (т.е. я не знаю его степени во время разработки). Затем я хочу установить горизонтальное смещение элемента управления scrollviewer, однако в это время его ширина прокрутки возвращается как 0. Вызов UpdateLayout для scrollviewer также не помогает.

В настоящее время я работаю над этой проблемой, проверив свойство ScrollableWidth элемента управления scrollviewer в событии рендеринга и сделав вызов ScrollToHor horizontalOffset, как только ScrollableWidth> 0.

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

Есть ли что-нибудь, что я могу сделать, чтобы принудительно обновить просмотрщик, чтобы я мог установить его горизонтальное смещение без этих хлопот?

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 06 января 2010

Установите непрозрачность элемента управления содержимым в средстве просмотра прокрутки на 0. Когда вы вызвали ScrollToHorizontOffset, затем установите непрозрачность элемента управления содержимым на 1. Таким образом, на самом деле никакой контент не будет виден, пока он не будет правильно расположен.

2 голосов
/ 10 января 2011

Прокручиваемая высота / ширина будет нулевой, пока не будет загружен дочерний контент. До тех пор он не знает, насколько большим он должен быть - таким образом, значение 0.

...