2010-07-16 2 views
0

В моем случае я хотел бы, чтобы развернуть/свернуть произошло слева направо и справа налево соответственно.Как оживить видимость StackPanel в Silverlight для расширения и сглаживания?

Анимация должна произойти при изменении видимости.

спасибо.

+0

Возможно, этот вопрос будет полезен: http://stackoverflow.com/questions/432550/animate-a-stackpanel-when-the-property-visibility-changes – andyp

ответ

1

Вы можете создать две анимационные раскадровки (один для расширения и один для свертывания), который анимирует ширину панели стека, а затем в StackPanel_VisibilityChanged запустит соответствующую анимацию.

+0

У вас есть пример, который оживляет текущую ширину StackPanel ? Все примеры, которые я вижу, основаны на фиксированной ширине. – Brandon

+0

Я помню, как я делал что-то вроде этого некоторое время назад, хотя я в конечном итоге избавился от него и изменил свое окно по-другому, поэтому у меня нет кода на мне (переключился на ScaleAnimation, который шел от 0 до 100%). Я думаю, что у меня была функция DoubleAnimation расписания «С», привязанная к StackPanel.RenderWidth и «To» к 0. Анимация существовала в Ресурсах, а не в стиле, и она запускалась при вызове Storyboard animation = (Storyboard) this.FindResource ("StoryboardName"); animation.Begin(); от кода позади. – Rachel

+0

Если это не работает, попробуйте анимацию RenderTransform. (ScaleTransform.ScaleX). Это то, что я сейчас использую. Я думаю, что если вы не установите CenterPoint, он будет анимироваться, поэтому эффект будет таким же, как и расширение. – Rachel

0

Я рекомендую анимировать свойство Width, а не ScaleX. В противном случае весь элемент управления (StackPanel) будет выглядеть хруст/растянут как его анимация.

Смежные вопросы