Есть ли WPF-элемент управления, который я могу использовать для расширения/свернуть панели (анимированные)

У меня есть окно с большим количеством контента. Я хотел бы иметь возможность разделить содержимое с помощью панелей и иметь разделитель, который пользователь может щелкнуть на переключателе между каждой панелью (с анимацией, которая перемещает разделитель слева направо, показывая один раздел и скрывая другое), Подумайте о панели навигации Microsoft Office (2007) . Есть ли простой способ сделать это?

Спасибо!

Ответы

Ответ 1

Я думаю, что вы ищете "Аккордеонный" контроль, вот сообщение abotu, как построить один из стека элементов управления Expander:

http://www.rooijakkers.net/Blog/post/2007/11/WPF-implementation-of-a-basic-Accordion-control.aspx

И для анимации взгляните на элемент "Reveal" из кевиновского мешка-o-трюков на http://j832.com/bagotricks/

Я думаю, что есть даже анимированный шаблон управления Expander на основе элемента Reveal в образце проекта.

Ответ 2

Мне также нужно это для моего приложения WPF, и лучшее, что я нашел, это полнофункциональный элемент управления Accordion в Silverlight Toolkit:

альтернативный текст http://www.sitechno.com/Blog/ct.ashx?id=a7c3c2d9-9446-4236-bc6e-c436427002ff&url=http%3a%2f%2fwww.sitechno.com%2fBlog%2fcontent%2fbinary%2ferindowsLiveW 2fAccordionpart1_102BB% 2fimage_2.png

Исходный код доступен здесь, а живая демонстрация здесь. Это, вероятно, легко портировать на WPF. В блоге Руурда Боке, состоящего из 5 частей, подробно обсуждается это. В части 4 он обсуждает, как изменить стиль аккордеона, используя шаблоны, чтобы получить этот великолепный аккордеонный вид:

alt text
(источник: sitechno.com)

alt text
(источник: sitechno.com)

Ответ 3

Я использую Expander.

<Expander Header="Items" IsExpanded="False">
    ...
</Expander>