2010-11-03 2 views
1

Я создаю приложение Windows Phone 7 в Silverlight.Лучший способ сделать эту анимацию в Silverlight 4?

У меня есть список в ListBox. Когда пользователь нажимает кнопку, рядом с каждым элементом списка появляются значки «Удалить». В идеале элементы списка будут перескакивать, и значки будут анимированы.

Я не уверен, что лучший способ сделать это. Я не знаком с анимацией в Silverlight. Один подход: создать шаблон данных для ListBox, который содержит значок и фактический контент. Если пользователь нажал кнопку, переключите видимость значка. Прикрепите обработчики событий к иконке. (Я не уверен, как работать с анимацией.)

Или есть другой способ сделать эту работу?

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

<VisualStateManager.CustomVisualStateManager> 
      <ic:ExtendedVisualStateManager/> 
     </VisualStateManager.CustomVisualStateManager> 
     <VisualStateManager.VisualStateGroups> 
      <VisualStateGroup x:Name="EditingStates"> 
       <VisualStateGroup.Transitions> 
        <VisualTransition GeneratedDuration="0:0:1"/> 
       </VisualStateGroup.Transitions> 
       <VisualState x:Name="Editing"> 
        <Storyboard> 
         <DoubleAnimation Duration="0" To="60" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="pivotItem" d:IsOptimized="True"/> 
        </Storyboard> 
       </VisualState> 
       <VisualState x:Name="NotEditing"> 
        <Storyboard> 
         <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="pivotItem" d:IsOptimized="True"/> 
        </Storyboard> 
       </VisualState> 
      </VisualStateGroup> 
     </VisualStateManager.VisualStateGroups> 

Кроме того, прямо сейчас это жестко запрограммировано как особый элемент управления. Как я могу изменить его как pivotItem, который пользователь просматривает сейчас?

+0

У вас есть Expression Blend для телефона Windows? Blend делает создание анимации довольно простым. –

+0

У меня действительно есть Expression Blend. –

+0

Windows Phone 7 не использует Silverlight 4 (упоминается в названии вашего вопроса), но Silverlight 3 с некоторыми дополнительными дополнениями/исключениями для телефона. – peSHIr

ответ

2

Это «канонический» корпус для VisualStates - просто создайте одно состояние с открытым значком и один со значком закрыт и переключайтесь между ними. Анимации между состояниями можно сделать очень легко. Я бы рекомендовал использовать смесь для WP7 (бесплатно) и проверить это видео в качестве отправной точки:

http://expression.microsoft.com/en-us/ee426922.aspx

Edit:

Для части 2 вашего вопроса, просто добавить значок до ItemTemplate и заставляйте его скользить снаружи и/или расти (изменяя ширину/высоту) с помощью анимации VS.

Вы должны добавить VisualStates в шаблон изделия в ListBox; сделав это, вы сможете ссылаться на правильный экземпляр элемента управления и значка в анимации VS.

+0

Можете ли вы показать образец XAML для того, как анимировать шаблон элемента с визуальными состояниями? –

1

Используйте раскадровки в вашем элементе управления списком, если у вас нет идеи попробовать использовать выражение blend для Windows Phone 7, тогда просто добавьте ключевой фрейм, как Adobe flash.

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