Стиль расширителя WPF, чтобы он выглядел как заголовок группы Outlook ListView

Как вы можете создать изображение WPF Expander, чтобы оно было +/-, например. чтобы он выглядел как заголовок группы Outlook ListView, как показано на рисунке ниже:

Открыть альтернативный текст

Закрыто alt text


person Soni Ali    schedule 29.05.2009    source источник


Ответы (2)


Не совсем, но достаточно близко, ознакомьтесь с этой статьей Карла Шиффлета на Серия примеров WPF — группировка ListBox, сортировка, промежуточные итоги и сворачиваемые области из материалов тура WPF LOB

Группировка ListBox, сортировка, промежуточные итоги и сворачиваемые области
(источник: wordpress.com)

person Soni Ali    schedule 12.06.2009

Вам нужно будет переопределить ControlTemplate Expander и изменить ContentControl с помощью TemplateBinding заголовка (обычно это ToggleButton) с вашим содержимым заголовка.

В вашем случае это +/- изображение/геометрия и текст.

Тем не менее, я бы пошел другим путем, чем с помощью Expander. Поскольку вы используете очень специфическую ориентацию, я бы просто позаимствовал взаимодействие ToggleButton+ContentControl, которое по умолчанию объединяет ContentControl Expander, и вместо этого создал новый Style/ControlTemplate для ToggleButton.

Основная причина, по которой я рекомендую это вместо переопределения ControlTemplate Expander, заключается в том, что Expander имеет очень большое определение ControlTemplate по умолчанию, и вам не придется иметь дело с переопределением всех параметров ExpandDirection.

В качестве альтернативы вы можете просто проигнорировать свойство ExpandDirection Expander и удалить код триггера ControlTemplate и связанные с ним стили.

person micahtan    schedule 29.05.2009