2016-05-23 2 views
4

Когда ScrollViewer показывает полосы прокрутки, а курсор не перемещается примерно на 3 секунды, скроллинг автоматически скрывается.Изменение времени по умолчанию таймера автоматического скрытия прокрутки ScrollViewer

Есть ли способ установить это время на большее или меньшее, чем время по умолчанию?

EDIT

ВОПРОИЗВЕДЕНИЕ так:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <ScrollViewer Height="500" Width="500"> 
     <Grid Background="Blue" Height="1000" Width="1000">     
     </Grid>    
    </ScrollViewer> 
</Grid> 

Переместить курсор на ScrollViewer, чтобы показать полосу прокрутки. Оставьте курсор неподвижным в течение 3 секунд, чтобы увидеть, как полоса прокрутки исчезает. Я хочу изменить эти 3 секунды 1.

EDIT 2

последующий вопрос - Why does this ScrollViewer's ScrollBars appear twice?.

+3

Если вы поедете в [Шаблон стиля ScrollBar] (https://msdn.microsoft.com/en-us/library/windows/apps/mt299150.aspx), обратите внимание на [FadeOutThemeAnimation] (https://msdn.microsoft.com/library/windows/apps/BR210302), прикрепленный к Vertical/HorizontalRoot для дорожек. Вы можете добавить BeginTime/Duration, чтобы настроить время, но нет свойства, которое можно было бы сделать, не впадая в шаблон. –

+0

@ChrisW. Я не очень хорошо знаю этот материал, но у всех FadeOutThemeAnimation есть уже BeginTime = «0» (в вашей первой ссылке), поэтому я не понимаю, что можно сделать. – ispiro

+0

Не беспокойтесь. То, что вы ищете, это переходы темы FadeIn/FadeOut и способы их вызова для каждого состояния. Например, состояние «NoIndicator» имеет значение BeginTimes, равное нулю, поскольку, как только No Indicator необходим, он немедленно начинает FadeOut на основе встроенных функций синхронизации. В качестве примера, если вы хотите прокомментировать элементы этого состояния, то треки останутся видимыми. Для того, чтобы привыкнуть к работе VisualStateManager, требуется немного практики. Blend отлично, когда вы сначала изучаете, используя вкладку «Штаты», чтобы увидеть, как они взаимодействуют. –

ответ

4

Я полагаю, что мне нужно начинать нарушать привычку делать быстрые ответы в комментариях так или иначе;

Выполнение оригинальных замечаний выше. Шаблоны стиля управления для Scrollbar имеют встроенную ThemeAnimation для FadeIn/FadeOut, вложенных в различные состояния в разделе VisualStateManager.

Будучи то, что они animations наследует в порядке;

Object -> DependencyObject -> Timeline

... они поддерживают свойства зависимостей, таких как BeginTime и Duration, что позволяет изменить поведение по умолчанию их действия. Поэтому, чтобы исправить ваш сценарий, у вас есть возможность либо полностью удалить их из своих соответствующих состояний в пределах VisualStateManager, либо вы можете изменить свойства, чтобы лучше соответствовать вашим потребностям ваших собственных требований к временной шкале.

Выполнение этого - это только вопрос об извлечении шаблона управления с использованием VS или Blend и либо явное применение изменений к копии шаблона, либо переопределение по умолчанию по умолчанию.

Рад, что вы нашли свое лекарство. :)

+0

Ничего плохого в 'quickie ответах в комментариях'.Я просто хотел дать вам кредит (- желанные очки репутации :)). Еще раз спасибо. – ispiro

+2

Эх, очки не помогают людям. Люди помогают людям. Cheers :) –

+0

Я думал, что решил, но нет. Я попытался сделать это, используя этот полезный ответ, но, как я сказал в комментарии к вопросу - все время начала scrollBar уже 0. Я попытался исправить это в ScrollViewer, но, хотя я не могу ускорить его работу, он также разрушает использование полосы прокрутки. – ispiro

Смежные вопросы