DataTemplate中的动画

时间:2010-11-05 19:49:00

标签: silverlight silverlight-4.0

下面是我用于列表框的ItemTemplate的数据模板。它显示了一些简单的数据和一个按钮,理想情况下应该为Popup设置动画,该按钮也包含在DataTemplate中。不幸的是,整个事情在运行时爆炸了。错误说第52行是错误的,这是:

<EventTrigger RoutedEvent="Button.Click">

这是整个DataTemplate。我之前使用过这个弹出窗口,使用相同的内容模板,甚至是其他地方的相同动画。当我尝试将它放入DataTemplate时,它才会爆炸。我认为动画很难找到合适的动画目标 - 我希望有人能在这里知道更多。

    <DataTemplate x:Key="ItemTemplate2">
        <Border Width="100" Height="100" BorderThickness="4" BorderBrush="Red">
            <StackPanel>
                <TextBlock Text="{Binding Name}"/>
                <TextBlock Text="{Binding Price}"/>
                <Popup x:Name="popupContent" IsOpen="True" Margin="10,0,0,0" Grid.Row="0" >
                    <Popup.Child>
                        <Thumb x:Name="thumbContent" DragDelta="Thumb_DragDelta" Width="0" Height="0">
                            <Thumb.Template>
                                <ControlTemplate>
                                    <local:thumbTemplate Margin="0" x:Name="df" />
                                </ControlTemplate>
                            </Thumb.Template>
                        </Thumb>
                    </Popup.Child>
                </Popup>
                <Button Content="Show">
                    <Button.Triggers>
                        <EventTrigger RoutedEvent="Button.Click">
                            <BeginStoryboard>
                                <BeginStoryboard.Storyboard>
                                    <Storyboard x:Name="sbShowPopup">
                                        <DoubleAnimation Duration="0:0:1" To="200" Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="popupContent" d:IsOptimized="True"/>
                                        <DoubleAnimation Duration="0:0:1" To="80" Storyboard.TargetProperty="(FrameworkElement.Height)" Storyboard.TargetName="popupContent" d:IsOptimized="True"/>
                                    </Storyboard>
                                </BeginStoryboard.Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </Button.Triggers>
                </Button>
            </StackPanel>
        </Border>
    </DataTemplate> 

1 个答案:

答案 0 :(得分:1)

您可能之前使用过此功能但未在Silverlight中使用过。 Silverlight中RoutedEvent唯一支持的值是“FrameworkElement.LoadedEvent”。

您需要BlendSDK才能在Silverlight中执行此类操作。