2012-03-29 4 views
2

나는 코드에서 클릭을 시뮬레이트하고 싶은 효과가있는 일련의 버튼이 있습니다. 문제는 내가 "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 속성을 사용하는 것도 가능하다

참고. 또 다른 방법은 이벤트를 사용하는 것인데, 은 XAML 코드 또는 코드 숨김으로 설정할 수 있습니다. 이 이벤트는 해당 메서드가 코드 숨김에 있어야하므로 을 의미하므로 순수 XAML 응용 프로그램에는 적용 할 수 없습니다.

0

는 sys.val 실현을 정의로 다음과 같은 코드를 사용할 수 있도록 Thread.sleep를가 작동하지 않습니다 : 오류 거기

: 대신 <EventTrigger RoutedEvent="Button.Click">

이 있어야한다 : <Event.Trigger.Sleep RoutedEvent="Button.Click">

관련 문제