2012-03-29 6 views
2

私は、コード内をクリックしてシミュレートしたいEFFECTSのボタンがあります。問題は、私が "someFunction"を実行すると、エフェクトがほぼ同時に同じトリガーになることです。私は、ボタンをクリックしたいと思うし、その後、効果が終了するのを待ってから、他のボタンに進みます。私はThread.sleepを使ってみましたが、うまくいきません。誰も私にこれを達成する方法のいくつかの指摘を与えることができますか?また、複数のボタンを同時にクリックしてシミュレートすることは可能ですか?コード内で一連のボタンをクリックしてシミュレートし、エフェクトが終了するのを待ちます

ありがとうございました!

someFunction() { 
    button1.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); 
    //System.Threading.Thread.Sleep(100); doesn't work wait for effect to finish 

    button2.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); 
    //System.Threading.Thread.Sleep(100); doesn't work 

    button3.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); 
    //System.Threading.Thread.Sleep(100); doesn't work 

    button4.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); 
} 

<Button Name="buttonRed" Background="Red" BorderBrush="Black" BorderThickness="1" 
     Grid.Row="1" Grid.Column="0" Click="buttonRedClick"> 
    <Button.BitmapEffect> 
     <BlurBitmapEffect x:Name="redBlur" Radius="0" /> 
    </Button.BitmapEffect> 
    <Button.Triggers> 
     <EventTrigger RoutedEvent="Button.Click"> 
      <BeginStoryboard> 
       <Storyboard> 
        <DoubleAnimation 
         Storyboard.TargetName="redBlur" 
         Storyboard.TargetProperty="Radius" 
         From="0" To="40" Duration="0:0:0.3" 
         AutoReverse="True" /> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Button.Triggers> 
</Button> 
+0

ストーリーボードを使用していますか? –

+0

どのような種類の「効果」を参照していますか?ストーリーボードのアクションを意味するのですか、これがボタンがクリックされたときに実行されるC#コードの種類ですか? – NtscCobalt

+0

はい、ストーリーボードを使用しています。 – user1299812

答えて

0

Laurent Bugnionによると、articleをご覧ください。物品上から

: カスケードアニメーションするために、例えば、アニメーションを遅延さ アニメーションオブジェクトのBeginTimeプロパティを使用することも可能であること

注意。別の方法は、Completedイベントを使用することです。 は、XAMLコードまたはコードビハインドで設定できます。このイベントは、 に対応するメソッドがコードビハインドに存在しなければならないことを意味します。したがって、 は、純粋なXAMLアプリケーションには適用されません。それはsys.val実現を定義すると次のコードを使用することができますので

0

のThread.sleepは、動作しません。

エラーがあります:<EventTrigger RoutedEvent="Button.Click">

代わりに、それは次のようになります。<Event.Trigger.Sleep RoutedEvent="Button.Click">

関連する問題