Добавление индикатора выполнения на фон элемента управления WPF

Как я могу изменить определенные элементы управления WPF (например, поле со списком, текстовое поле и т. д.), чтобы иметь индикатор выполнения на фоне элемента управления (который я могу включать и отключать по требованию). Мне не нужно, чтобы он действительно отображал точный прогресс, мне просто нужно указать, что этот элемент управления ожидает завершения чего-то. Вращающийся значок внутри элемента управления тоже подойдет.

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

Спасибо!


person user981225    schedule 02.12.2011    source источник


Ответы (1)


Вы можете поместить что угодно куда угодно, вам просто нужно изменить соответствующий Template, что может быть нетривиально, вы можете начать с копирования существующие.

Чтобы легко включать и отключать, вам, возможно, следует создать подкласс целевого элемента управления, чтобы у вас могло быть выделенное свойство зависимости для того, которое может быть привязано к Visibility из ProgressBar в шаблоне (возможно, с BooleanToVisibilityConverter).

person H.B.    schedule 02.12.2011
comment
Я согласен с этим ответом. Вы можете делать много пользовательских вещей в WPF, так что это также может быть достигнуто с помощью пользовательского элемента управления (или пользовательского элемента управления, если это необходимо). Однако моей рекомендацией также является предоставление нового шаблона элемента управления и элемента управления подкласса. - person Adam; 02.12.2011
comment
Спасибо за совет. Чтобы изменить шаблон управления, нужно ли мне знать, что такое существующий? Например, я использую DevExpress ComboBoxEdit, который может иметь другой шаблон, чем тот, на который вы ссылаетесь. - person user981225; 02.12.2011
comment
@ user981225: Вам не нужно знать подробности, но вам нужно знать основные части, обычно они отмечены как атрибуты класса. Эти элементы управления должны отображаться в шаблоне и иметь соответствующее имя части. - person H.B.; 02.12.2011