Silverlight: перемещать ScrollViewer по коду?

Я хочу перемещать элемент управления «ScrollViewer» влево и вправо с помощью кнопок за его пределами, я нашел эту функцию:

ScrollViewer.LineLeft ()

Это нормально, но я хочу увеличить количество движения влево при каждом нажатии на определенную величину, например, на 200 пикселей?

Есть еще кое-что: как я могу заставить мою кнопку, удерживая на ней мышь, дублировать, выполняет обработчик событий щелчка, пока mouseleftbutton не станет Up (как кнопки самой прокрутки)?

Спасибо.


person Saad    schedule 31.10.2010    source источник


Ответы (1)


Что касается вашего первого вопроса, вы можете унаследовать элемент управления содержимым от IScrollInfo и реализовать метод LineLeft самостоятельно по своему усмотрению.

Если вы просто хотите перейти к позиции с помощью других кнопок (внешних по отношению к ScrollViewer), вы можете использовать методы SetHorizontalOffset и SetVerticalOffset.

Чтобы Button срабатывал несколько раз, щелкните его, просто замените его на RepeatButton: http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.repeatbutton(VS.95).aspx

person robertos    schedule 31.10.2010
comment
Что касается моего первого вопроса, я все еще не могу контролировать количество движений средства просмотра прокрутки, вы можете привести мне пример. - person Saad; 07.11.2010
comment
Взгляните на это руководство: switchonthecode.com/tutorials/ - это для WPF, но большая часть относится к SL. - person robertos; 08.11.2010