我有一系列带有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)
试着看看Laurent Bugnion的这个article。
从以上文章:
请注意,也可以使用的BeginTime属性 动画对象延迟动画,例如为了 级联动画。另一种方法是使用Completed事件 可以在XAML代码中设置,也可以在代码隐藏中设置。这个事件意味着 因此,相应的方法必须存在于代码隐藏中 它不适用于纯XAML应用程序。
答案 1 :(得分:0)
Thread.sleep将无法正常工作,因为它定义了sys.val实现,因此您可以使用以下代码:
出现错误:<EventTrigger RoutedEvent="Button.Click">
应该是:<Event.Trigger.Sleep RoutedEvent="Button.Click">