Как остановить пульсирующую / анимацию WPF ProgressBar, когда она достигает 100%?

программирование какао для Mac OS X Aaron Hillegass

27
задан Tom Robinson 31 December 2010 в 15:27
поделиться

2 ответа

Ответ Дабблернл надежный. Вот хак (потому что он опирается на внутреннее имя элемента, который светится, что является деталью реализации и может измениться в последующей версии):

void SetGlowVisibility(ProgressBar progressBar, Visibility visibility) {
    var anim = progressBar.Template.FindName("Animation", progressBar) as FrameworkElement;
    if (anim != null)
        anim.Visibility = visibility;
}

Если как ProgressBar Внесенные изменения, этот хак может перестать работать.

С другой стороны, решение, которое полностью заменяет XAML и стили, может блокировать и фиксировать цвета, границы и т. Д. И отключать поведение, которое может быть добавлено к более новой версии ProgressBar в будущем ...

Редактировать: Детали реализации изменились. Изменено с "PART_GlowRect" на "Animation" - первый используется только в aero.normalcolor.xaml, а последний используется в более поздних aero2.normalcolor.xaml и aerolite.normalcolor.xaml.

8
ответ дан 28 November 2019 в 05:45
поделиться

Я думаю, что единственный способ - это создать собственный стиль для ProgressBar.
Описание MSDN для IsIndeterminate относится к другому поведению и, по умолчанию, оно ложно, поэтому настройка ничего не меняет.

0
ответ дан 28 November 2019 в 05:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: