2010-02-17 4 views
3

У меня есть следующий макет в WPFWPF Сетка/WrapPanel Авторазмер Анимация

<grid> 
<row height=auto> 
<border> 
<listbox> 
<border? 
</row> 
<row height=*> 
<othercontent> 
</row> 
</grid> 

Использование MVVM и имеют ListBox ItemSource связанный. Я использую wrapPanel в сетке и отключен прокрутка, поэтому высота строки Grid будет расти и уменьшаться в зависимости от содержимого списка. Все это прекрасно работает.

Что бы я хотел, это возможность оживить растущее и сжатие списка (или границы, содержащей его, или строки сетки с автоматической высотой). Какой элемент я должен использовать - триггер на SizeChanged на границе?

Также я когда мои изменения ItemsSource, я хотел бы мои пункты ListBox исчезать, затем изменить размер, то новые элементы исчезать в.

Любая помощь очень ценится. Спасибо, Chris

+0

http://stackoverflow.com/questions/5230793/method-called-in-wpf-when-window-size-changes – user1834059

+0

«Непосредственные маршрутизируемые события не следуют маршруту, они обрабатываются только внутри одного и того же элемента на которые они поднимают. Прямые маршрутизированные события поддерживают другое поведение маршрутизируемых событий: они поддерживают коллекцию доступных обработчиков и могут использоваться как EventTrigger в стиле ». - http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.sizechanged.aspx – user1834059

ответ

0

Думаю, вам нужно будет создать свою собственную WrapPanel. Возможно, там уже есть сторонний контроль, который делает то, что вы хотите.

Не знаете, как это можно сделать. Но настраиваемая панель обертки. При изменении размера проверьте, есть ли место для позиции в строке. Если это так, вы можете запустить storyboars, который будет анимировать позицию позиции.

Также ознакомьтесь с визуальным менеджером состояния. Если вы используете жидкую компоновку, вы сможете оживить материал, который не оживляет. Подобно перемещению uielement из столбца сетки в другой.

Не уверен, что это поможет.

+0

Только что нашел эту ссылку. Может быть, это может помочь. http://blogs.msdn.com/b/dancre/archive/2006/02/23/537966.aspx – Michael