Как использовать одну анимацию для нескольких элементов управления в Silverlight - PullRequest
1 голос
/ 13 февраля 2012

Я просто изучаю Silverlight (в C #), и у меня проблема. У меня есть 14 прямоугольников и их ширина / высота установлены на «Авто». Я хочу создать анимацию на MouseEnter / MouseLeave. Анимация будет просто менять ширину / высоту. Я сделал это, используя Expression Blend для Silverlight 5, и все в порядке, но он сделал ОГРОМНЫЙ код. Могу ли я сделать анимацию ресурсов для всех прямоугольников?

Это код XAML, созданный Blend, и у меня есть 14 таких блоков

<Storyboard x:Name="BigTableOne_MouseEnter">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)" Storyboard.TargetName="Table1">
            <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
            <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="1.04"/>
        </DoubleAnimationUsingKeyFrames>
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleY)" Storyboard.TargetName="Table1">
            <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
            <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="1.04"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
    <Storyboard x:Name="BigTableOne_MouseLeave">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)" Storyboard.TargetName="Table1">
            <EasingDoubleKeyFrame KeyTime="0" Value="1.04"/>
            <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="1"/>
        </DoubleAnimationUsingKeyFrames>
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleY)" Storyboard.TargetName="Table1">
            <EasingDoubleKeyFrame KeyTime="0" Value="1.04"/>
            <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="1"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

1 Ответ

0 голосов
/ 25 июня 2012

Все ваши раскадровки имеют одинаковое содержимое, кроме свойства "Storyboard.TargetName". Так что вы можете просто удалить это свойство и установить его динамически во время выполнения.

Подробнее вы можете найти здесь .

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