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