Как связать изображение в раскадровке анимации - PullRequest
1 голос
/ 30 марта 2012

Мне нужно привязать к раскадровке, но я не могу понять, как.У меня есть привязка, работающая с другим элементом управления, но, кажется, не могу заставить его работать с этим.Можете ли вы помочь мне, это возможно?

как я могу вместо этого xaml

<Storyboard x:Key="CandleStoryboardXaml" RepeatBehavior="Forever">
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="CandleImage" Storyboard.TargetProperty="Source">
    <DiscreteObjectKeyFrame KeyTime="0:0:0.50" Value="/images/candle_01.jpg" />
    <DiscreteObjectKeyFrame KeyTime="0:0:0.100" Value="/images/candle_02.jpg" />
    <DiscreteObjectKeyFrame KeyTime="0:0:0.150" Value="/images/candle_03.jpg" />
    <DiscreteObjectKeyFrame KeyTime="0:0:0.200" Value="/images/candle_04.jpg" />
    <DiscreteObjectKeyFrame KeyTime="0:0:0.250" Value="/images/candle_05.jpg" />
    ...
</ObjectAnimationUsingKeyFrames>
</Storyboard>`

что-то вроде этого

<Storyboard x:Key="CandleStoryboardXaml" RepeatBehavior="Forever">
 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CandleImage" Storyboard.TargetProperty="Source">
     <DiscreteObjectKeyFrame  Value="{Binding SourceItem}" />         
 </ObjectAnimationUsingKeyFrames>
</Storyboard>

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Если вы хотите создать первую раскадровку точно , используя привязку, ответ - вы не можете.Привязка к коллекции в Silverlight выполняется с помощью ItemsControl, который создает элементы на основе шаблона и добавляет их в визуальное дерево.Раскадровка не имеет визуального дерева, поэтому вы не можете использовать этот подход в этом контексте.

Я бы предложил написать некоторый код для создания раскадровки на основе массива изображений.Если вас беспокоит наличие кода, вы всегда можете упаковать код как прикрепленное поведение.

0 голосов
/ 30 марта 2012

Попробуйте создать панель стека и добавлять изображения одно за другим по горизонтали или вертикали.

            <StackPanel.Resources>

            <EventTrigger x:Name="event" RoutedEvent="StackPanel.Loaded">
            <EventTrigger.Actions>

            <BeginStoryboard>

            <Storyboard x:Name="mystoryboard">

          <DoubleAnimationUsingKeyFrames
           Storyboard.TargetName="Trans" 
           Storyboard.TargetProperty="X">
         <LinearDoubleKeyFrame Value="-387" KeyTime="0:0:1" />




         </DoubleAnimationUsingKeyFrames>


  <Image Height="165" HorizontalAlignment="Left" Margin="400,40,-400,0"  VerticalAlignment="Top" Width="175" Source="{Binding SourceItem}">
                                    <Image.RenderTransform>
                                        <TranslateTransform x:Name="Trans" X="0" Y="0" />
                                    </Image.RenderTransform>
                                </Image>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...