Переместить динамическую анимацию silverlight в WPF - PullRequest
3 голосов
/ 12 ноября 2011

У меня есть анимация silverlight (работа на 100% уверена):

<UserControl.RenderTransform>
    <CompositeTransform/>
</UserControl.RenderTransform>

и в коде:

Storyboard.SetTargetProperty(myDoubleAnimation1, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.TranslateX)"));
Storyboard.SetTargetProperty(myDoubleAnimation2, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.TranslateY)"));

Я пробовал в WPF это:

<UserControl.RenderTransform>
    <TranslateTransform />
</UserControl.RenderTransform>

и:

Storyboard.SetTargetProperty(myDoubleAnimation1, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)"));
Storyboard.SetTargetProperty(myDoubleAnimation2, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.Y)"));

, но происходит сбой, за исключением того, что путь (UIElement.RenderTransform). (TranslateTransform.X) не может быть разрешен или как-то так. Можете ли вы помочь?

Ответы [ 2 ]

1 голос
/ 13 ноября 2011

Как вы, наверное, поняли, в WPF нет CompositeTransform. Стандартный способ создания Transforms - создание TransformGroup. Затем добавьте четыре типа преобразований.

<UserControl.RenderTransform> 
<TransformGroup> 
    <TranslateTransform /> 
    <ScaleTransform />
    <SkewTransform />
    <RotateTransform />
</TransformGroup> 

Тогда анимация ссылается на преобразование с использованием синтаксиса индексатора.

(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)
1 голос
/ 12 ноября 2011

Решение:

код-за:

Storyboard.SetTargetProperty(myDoubleAnimation1, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)"));
Storyboard.SetTargetProperty(myDoubleAnimation2, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.Y)"));

Разметка:

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