Xaml 如何在ItemClick中设置ListItem的动画?
我的页面资源中有故事板,可以在所需控件之间共享它。我试图通过设置TargetName属性,在代码隐藏中使用该情节提要来设置单击的ListItem的动画Xaml 如何在ItemClick中设置ListItem的动画?,xaml,uwp,Xaml,Uwp,我的页面资源中有故事板,可以在所需控件之间共享它。我试图通过设置TargetName属性,在代码隐藏中使用该情节提要来设置单击的ListItem的动画 <Page.Resources> <Storyboard x:Name="Story1"> <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderT
<Page.Resources>
<Storyboard x:Name="Story1">
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)">
<EasingDoubleKeyFrame KeyTime="0:0:0" Value="-200"/>
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Page.Resources>
<ListView x:Name="ListView1" IsItemClickEnabled="True" ItemClick="ListView1_ItemClick">
<ListView.ItemTemplate>
<DataTemplate>
<Grid x:Name="GridData">
<Grid.RenderTransform>
<TranslateTransform x:Name="GridTrans" X="0" />
</Grid.RenderTransform>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding Price}" />
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
private void ListView1_ItemClick(object sender, ItemClickEventArgs e)
{
Story1.Stop();
var item = ListView1.ContainerFromItem(e.ClickedItem) as ListViewItem;
var grid = item.ContentTemplateRoot as Grid;
Storyboard.SetTargetName(Story1, grid.Name); //???
Story1.Begin();
}
私有无效列表视图1\u项单击(对象发送者,项单击事件参数e)
{
故事1.停止();
var item=ListView1.ContainerFromItem(如ClickedItem)作为ListViewItem;
var grid=item.ContentTemplateRoot作为网格;
故事板.SetTargetName(故事1,grid.Name);/???
故事1.开始();
}
但无法对ItemClick事件上单击的ListItem设置动画。我得到的错误是“无法解析TargetName GridData”GridData位于
DataTemplate
下,如果使用SetTargetName
方法设置动画,它将无法获得正确的ContentTemplateRoot
。对于您的需求,您可以使用SetTarget
方法
private void ListView1_ItemClick(object sender, ItemClickEventArgs e)
{
Story1.Stop();
var item = ListView1.ContainerFromItem(e.ClickedItem) as ListViewItem;
var grid = item.ContentTemplateRoot as Grid;
Storyboard.SetTarget(Story1, grid);
Story1.Begin();
}