Анимация из DataTemplate - PullRequest
       1

Анимация из DataTemplate

1 голос
/ 05 ноября 2010

Ниже приведен шаблон данных, который я использую для элемента ItemTemplate списка. Он показывает некоторые простые данные и кнопку, которая в идеале должна анимировать всплывающее окно, также содержащуюся в DataTemplate. К сожалению, все это взорвалось во время выполнения. Ошибка говорит, что строка 52 неверна, а именно:

<EventTrigger RoutedEvent="Button.Click">

Вот весь шаблон данных. Я использовал это всплывающее окно раньше, с такими же точными шаблонами контента и даже с такой же анимацией в других местах. Это только взрывается, когда я пытаюсь поместить это в 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 Ответ

1 голос
/ 05 ноября 2010

Возможно, вы использовали это раньше, но не в Silverlight. Единственное поддерживаемое значение для RoutedEvent в Silverlight - это "FrameworkElement.LoadedEvent".

Вам потребуется BlendSDK, чтобы делать подобные вещи в Silverlight.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...