我希望能够在单击按钮时使用故事板展示一个平面投影动画的图片。当我尝试在单个实例上执行时,这一方法是有效的。但是在我的 Silverlight 页面(Windows Phone 7)中,我使用数据模板来从一组对象中重复此操作。然而,在这里,它并不起作用。以下是数据模板的 .xaml 内容:
但是我遇到了错误:
我认为问题在于有多个x:Name为"MyImg"的Image对象,但我不知道如何在数据模板中将故事板目标设置为正确的图像。
<DataTemplate x:Name="MyDt">
<Button Tag="{Binding iId}" BorderThickness="0" Click="buttonClick" Width="456" Style="{StaticResource ButtonStyle}">
<Image x:Name="MyImg" Source="Images/image.png" Visibility="Collapsed">
<Image.Projection>
<PlaneProjection/>
</Image.Projection>
</Image>
</Button>
</DataTemplate>
这是故事板的.xaml文件(在手机页面资源中):
<Storyboard x:Name="storyboardShowImage">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Projection).(PlaneProjection.RotationY)" Storyboard.TargetName="">
<EasingDoubleKeyFrame KeyTime="0" Value="90"/>
<EasingDoubleKeyFrame KeyTime="00:00:01" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
这里是按钮点击事件的 .cs 代码:
private void buttonClick(object sender, RoutedEventArgs e)
{
/* Get image object from x:Name */
Image img;
img = GetChildImage((DependencyObject)sender, "MyImg");
/* Launch storyboard on img object */
((DoubleAnimationUsingKeyFrames)storyboardShowImage.Children[0]).SetValue(Storyboard.TargetNameProperty, img.Name);
storyboardShowImage.Begin();
}
但是我遇到了错误:
Cannot resolve TargetName MyImg.
我认为问题在于有多个x:Name为"MyImg"的Image对象,但我不知道如何在数据模板中将故事板目标设置为正确的图像。