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

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

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

ИЗМЕНИТЬ

Воспроизвести так:

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

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

ИЗМЕНИТЬ 2

Дополнительный вопрос: Почему полосы прокрутки этого ScrollViewer появляются дважды? .


person ispiro    schedule 23.05.2016    source источник
comment
Если вы идете, проверьте уведомление ScrollBar есть FadeOutThemeAnimation, прикрепленный к вертикальным/горизонтальным корням дорожек. Вы можете добавить BeginTime/Duration, чтобы настроить время, но нет свойства, доступного для этого без копания в шаблоне.   -  person Chris W.    schedule 23.05.2016
comment
@КрисВ. Я не очень хорошо разбираюсь в этом, но все FadeOutThemeAnimation, похоже, уже имеют BeginTime=0 (в вашей первой ссылке), поэтому я не понимаю, что можно сделать.   -  person ispiro    schedule 24.05.2016
comment
Без проблем. То, что вам нужно, — это переходы темы FadeIn/FadeOut и то, как они вызываются для каждого состояния. Например, в состоянии NoIndicator для параметра BeginTimes установлено нулевое значение, потому что, как только индикатор не требуется, сразу же начинается FadeOut на основе встроенных функций синхронизации. Например, если вы закомментируете элементы этого состояния, то дорожки останутся видимыми. Требуется немного практики, чтобы привыкнуть к тому, как работает VisualStateManager. Blend отлично подходит для первого изучения с использованием вкладки «Состояния», чтобы увидеть, как они взаимодействуют.   -  person Chris W.    schedule 24.05.2016


Ответы (1)


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

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

Поскольку они анимации наследуются в порядке;

Объект -> Объект зависимости -> Временная шкала

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

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

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

person Chris W.    schedule 25.05.2016
comment
Ничего страшного в quickie answers in comments. Я просто хотел отдать тебе должное (-заветные очки репутации :)). Спасибо еще раз. - person ispiro; 25.05.2016
comment
Я думал, что решил это, но нет. Я попытался сделать это, используя этот полезный ответ, но, как я сказал в комментарии к вопросу, все времена начала полосы прокрутки уже равны 0. Вместо этого я попытался исправить это в ScrollViewer, но, хотя я могу скрыть его быстрее, это также портит использование полосы прокрутки. - person ispiro; 26.05.2016
comment
Возможно, мне придется увидеть, что вы имеете в виду. Проблемы с визуализацией того, что вы описываете. - person Chris W.; 26.05.2016
comment
Теперь я отредактировал вопрос, указав, как воспроизвести ожидаемое и желаемое поведение. (Спасибо за вашу настойчивость.) - person ispiro; 26.05.2016
comment
Оказывается, мне просто нужно отредактировать шаблон ScrollViewer и изменить там значения. Спасибо, что наставили меня на правильный путь! - person ispiro; 26.05.2016
comment
Прохладный! Да, иногда вложенная структура управления оставляет массу удовольствия для поиска виновника в слоях. Рада, что вы нашли свое средство! - person Chris W.; 26.05.2016
comment
@ispiro Хорошо, я завален, пока не выйду из офиса, я загружу его, когда вернусь домой, и просто исправлю это для вас, если вы не получили ответа к тому времени, на самом деле еще не загрузили шаблоны. Я в центральном стандартном часовом поясе. - person Chris W.; 26.05.2016
comment
Вы разобрались с этим? Я не возвращался допоздна - person Chris W.; 27.05.2016
comment
В соответствии с комментариями от этого на - 1,1 секунды По опыту, меньше всего работает. И нет возможности исправить лишнее время при нахождении в ScrollViewer. Спасибо за вопрос. - person ispiro; 27.05.2016
comment
Посмотрим на это позже, когда у меня будет время поковыряться. ;) - person Chris W.; 27.05.2016