2010-11-03 67 views
1

我在Silverlight中构建了Windows Phone 7应用程序。在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

你有用于Windows Phone的Expression Blend吗? Blend使创建动画非常简单。 – 2010-11-03 20:01:09

+0

我的确有Expression Blend。 – 2010-11-03 20:33:41

+0

Windows Phone 7没有使用Silverlight 4(在您的问题的标题中提到),而是Silverlight 3中的某些电话特定的添加/排除。 – peSHIr 2010-11-10 14:48:20

回答

2

这是VisualStates的“规范”情况 - 只创建一个状态,图标打开,图标关闭,并在它们之间切换。国家之间的动画可以很容易地完成。我建议你使用的WP7(免费)混合,并检查该视频为出发点:

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

编辑:

对于你的问题的第2部分,只需将图标到ItemTemplate,并使其从外部滑动和/或使用VS动画增长(改变宽度/高度)。

您应该将VisualStates添加到ListBox中的项目模板中;通过这样做,您将能够在VS动画中引用控件和图标的正确实例。

+0

您可以显示一些示例XAML以了解如何使用视觉状态动画项目模板? – 2010-11-12 20:06:12

1

在列表框控件中使用故事板,如果您没有想法,请尝试使用Expression Blend for Windows Phone 7,然后添加一个关键帧,就像Adobe Flash一样。

相关问题