Привязать к анимированному свойству (WPF)

Кто-нибудь знает, есть ли способ использовать анимированное свойство в качестве источника для привязки? Насколько я понял, анимация «на самом деле» не устанавливает значение свойства и, следовательно, не запускает измененные события, которые необходимы для запуска привязки.

Тиа Мартин


person Martin Moser    schedule 04.02.2009    source источник


Ответы (2)


Я не знаю, правда ли то, что вы говорите. В XAML ниже TextBlock будет отображать ширину прямоугольника. Когда вы щелкаете прямоугольник, свойство Width анимируется с 50 до 300. При каждом приращении значение TextBlock изменяется. Я не понимаю вашего вопроса?

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>
  <TextBlock Text="{Binding ElementName=Rect,Path=Width}" Grid.Row="0" />
  <Rectangle Grid.Row="1"
             Name="Rect"
             Height="30"
             Width="50"
             Fill="Blue"
             HorizontalAlignment="Left">
    <Rectangle.Triggers>
      <EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown">
        <EventTrigger.Actions>
          <BeginStoryboard>
            <Storyboard>
              <DoubleAnimation Storyboard.TargetProperty="Width"
                From="50"
                To="300"
                Duration="0:0:10"/>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger.Actions>
      </EventTrigger>
    </Rectangle.Triggers>
  </Rectangle>
</Grid>
person Szymon Rozga    schedule 04.02.2009

Анимация на самом деле действительно изменяет значение, она вызывает обратный вызов измененного свойства, который вы передаете в DependecyProperty.Register, и вызывает необходимость идентификатора прохода макета/рендеринга.

person Nir    schedule 04.02.2009