Wpf 如何在数据绑定控件列表中逐个启动故事板
在Silverlight中(尽管我认为这也适用于WPF),我有一个Items控件,它绑定了一个URI列表 ItemsPanel是一个WrapPanel(来自Silverlight工具包),DataTemplate包含一个带有源代码绑定的图像 数据绑定图像显示良好 在每个绑定图像的xaml中,我有一个故事板,它由图像启动。在每个图像的EventTrigger上加载RouteEvent 故事板在1秒的时间内将图像不透明度从0增加到1 当同时运行所有图像“淡入”时 问题:如何延迟生成后续图像动画,使后续图像动画在前一个动画开始后不久启动?(想想墨西哥的浪潮) 更新:代码示例即将发布Wpf 如何在数据绑定控件列表中逐个启动故事板,wpf,silverlight,xaml,Wpf,Silverlight,Xaml,在Silverlight中(尽管我认为这也适用于WPF),我有一个Items控件,它绑定了一个URI列表 ItemsPanel是一个WrapPanel(来自Silverlight工具包),DataTemplate包含一个带有源代码绑定的图像 数据绑定图像显示良好 在每个绑定图像的xaml中,我有一个故事板,它由图像启动。在每个图像的EventTrigger上加载RouteEvent 故事板在1秒的时间内将图像不透明度从0增加到1 当同时运行所有图像“淡入”时 问题:如何延迟生成后续图像动画,使后
<ItemsControl x:Name="Items1" ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel></toolkit:WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="#cccccc" BorderThickness="1" Margin="5">
<Image x:Name="myImage" Source="{Binding}" Width="100" Height="100" Stretch="Fill">
<Image.Triggers>
<EventTrigger RoutedEvent="Image.Loaded">
<BeginStoryboard>
<Storyboard x:Name="myStoryboard">
<DoubleAnimation Duration="00:00:03"
Storyboard.TargetName="myImage"
Storyboard.TargetProperty="Opacity"
From="0" To="1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我的建议是排一个队列。这样,您可以启动第一个脚本,当它触发“已完成”事件时,您可以将下一个脚本出列并启动该脚本,当该脚本结束时,您可以将下一个脚本出列并启动该脚本,依此类推。您可以将DoubleAnimation.BeginTime
绑定到列表中ImageUri的索引。
当然,你必须使用转换器
class UriIndexConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int seconds = YourUriList.IndexOf(value); /* or something similar */
return new TimeSpan(0, 0, seconds);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
在双动画中
:
BeginTime="{Binding Converter={StaticResource UriIndexConverter}}"
我想我会在周末的某个时候试试这个。谢谢LPL的建议。我确实想知道绑定BeginTime和使用转换器是否有完美的意义。会让你知道事情的进展。嗯,弄清楚如何通过你的名单