0

長方形があり、ユーザーがマウスボタンを左に 1 ピクセル、下に 1 ピクセル押したときに位置 (x,y) を設定したいので、簡単なフィードバックが得られます。

    <Canvas x:Name="canvas">
        <Canvas.Resources>
            <Style x:Key="myStyle" TargetType="Rectangle">
                <Setter Property="Fill" Value="AliceBlue" />
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Fill" Value="Green"  />
                    </Trigger>
                    <EventTrigger RoutedEvent="Button.Click" >
                        <BeginStoryboard>
                            <Storyboard TargetProperty="Canvas.Left">
                                <Int16Animation From="10" To="100" Duration="0:0:0:1" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </Canvas.Resources>

        <Rectangle x:Name="rect" Width="120" Height="120" Canvas.Left="10" Canvas.Top="10" Style="{StaticResource myStyle}" />
    </Canvas>

私の現在のソリューションでは、マウスオーバートリガーが機能します。しかし、私の EventTriggers では何も起こりませんか?

これを達成する方法はありますか?

ありがとう

4

1 に答える 1

1

ここにはいくつか問題があります。

  • Button.ClickRectangle にはイベントはありません。たとえば、MouseLeftButtonUp代わりに使用します。
  • Canvas.Left添付プロパティです。プロパティ名を括弧内に記述する必要があります。
  • これは のタイプdoubleであるため、 によってアニメーション化する必要がありDoubleAnimationます。

EventTrigger を次のように記述します。

<EventTrigger RoutedEvent="MouseLeftButtonUp" >
     <BeginStoryboard>
         <Storyboard TargetProperty="(Canvas.Left)">
             <DoubleAnimation From="10" To="100" Duration="0:0:0.1" />
         </Storyboard>
    </BeginStoryboard>
</EventTrigger>
于 2013-04-09T19:20:29.550 に答える