2

有谁知道,是否有办法使用动画属性作为绑定的源?据我所知,动画并没有“真正”设置属性的值,因此不会触发更改的事件,这是触发绑定所必需的。

蒂亚·马丁

4

2 回答 2

4

我不知道你说的是不是真的。在下面的 XAML 中,TextBlock 将显示 Rectangle 的宽度。当您单击 Rectangle 时,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>
于 2009-02-04T14:22:38.060 回答
2

动画实际上确实改变了值,它确实调用了您传递给 DependecyProperty.Register 的属性更改回调,并且它确实导致需要布局/渲染传递 ID。

于 2009-02-04T15:19:18.727 回答