2

我有这个代码(到目前为止它正在工作);

<Image Name="img_person" Tag="{Binding Path=MyProperty1, NotifyOnTargetUpdated=True}" Canvas.Top="0" Canvas.Left="0">
  <Image.Triggers>
    <EventTrigger RoutedEvent="Binding.TargetUpdated">
      <BeginStoryboard>
        <Storyboard>
          <DoubleAnimation 
            Storyboard.TargetName="img_person" 
            Storyboard.TargetProperty="(Canvas.Top)" 
            By="64"
            Duration="0:0:0.8"
            AutoReverse="False" />
       </Storyboard>
     </BeginStoryboard>
   </EventTrigger>
 </Image.Triggers>

我想改变这条线;

    <EventTrigger RoutedEvent="Binding.TargetUpdated">

对于这样的事情;

    <EventTrigger ThisParticularPropertyHasChanged="MyProperty1">

我想这样做,因为我将有几个情节提要,每个情节提要在特定属性更改时启动。有了 1 个属性,我一直将它绑定到图像的 Tag 属性,但现在我有几个要做(大约 8 个)我不知道该怎么做。

该类实现 INotifyPropertyChanged。

谢谢。

解决方案,感谢 sa_ddam213;

    <Style x:Key="PersonImageStyle" TargetType="{x:Type Image}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding UI_DirectionOfMovement}" Value="South">
                <DataTrigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" By="64" Duration="0:0:0.8" AutoReverse="False" />
                        </Storyboard>
                    </BeginStoryboard>
                </DataTrigger.EnterActions>
            </DataTrigger>
            <DataTrigger Binding="{Binding UI_DirectionOfMovement}" Value="East">
                <DataTrigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" By="64" Duration="0:0:0.8" AutoReverse="False" />
                        </Storyboard>
                    </BeginStoryboard>
                </DataTrigger.EnterActions>
            </DataTrigger>
        </Style.Triggers>
    </Style>
4

0 回答 0