Анимация элемента WPF в XAML с использованием присоединенного свойства? - PullRequest
8 голосов
/ 29 января 2012

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

Далее я хотел на самом деле переместить изображение вверх и вниз. Для этого я добавил компонент Canvas вокруг своего изображения, чтобы иметь возможность анимировать на основе свойства Canvas.Top. Установка Canvas.Top на изображение перемещает его туда, куда я хочу.

Однако, если я установлю StoryBoard.TargetProperty на Canvas.Top, я получу ошибку:

Невозможно разрешить все ссылки на свойства в пути к свойствам. Canvas.Top.

<Style x:Key="LoadingImageAnimation" TargetType="{x:Type Image}">
  <Style.Triggers>
    <DataTrigger Binding="{Binding IsLoading}" Value="True">
      <DataTrigger.EnterActions>
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation From="10" To="250" AutoReverse="True" Duration="0:0:30"
                             Storyboard.TargetProperty="Canvas.Top"/>
          </Storyboard>
        </BeginStoryboard>
      </DataTrigger.EnterActions>
    </DataTrigger>
  </Style.Triggers>
</Style>

Мой подход полностью отключен, или просто вопрос нахождения Приложенного свойства?

1 Ответ

17 голосов
/ 29 января 2012

покопался в Синтаксис пути к свойству .и решение было на самом деле простым .. Нужно было добавить скобки "(Canvas.Top)".

Анимация не такая плавная, как хотелось бы ... но, по крайней мере, теперь она работает

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