代码之家  ›  专栏  ›  技术社区  ›  Adam Rackis

数据模板内的动画

  •  1
  • Adam Rackis  · 技术社区  · 14 年前

    下面是我用于列表框项模板的数据模板。它显示了一些简单的数据,以及一个按钮,这在理想情况下应该是弹出窗口的动画,也包含在数据模板中。不幸的是,整个事情在运行时就爆炸了。错误显示第52行错误,即:

    <EventTrigger RoutedEvent="Button.Click">
    

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

        <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 回复  |  直到 14 年前
        1
  •  1
  •   AnthonyWJones    14 年前

    您以前可能使用过这个,但在Silverlight中没有。唯一支持的值 RoutedEvent 在Silverlight中是“frameworkelement.loadedEvent”。

    您需要Blendsdk在Silverlight中执行这类操作。