如何在C#/XAML中以编程方式触发所有事件?

10 浏览
0 Comments

如何在C#/XAML中以编程方式触发所有事件?

我有一个在Windows Phone 8.1中的按钮。

按钮 x:FieldModifier="public" x:Name="button1" Content="1" HorizontalAlignment="Left" Margin="10,141,0,0" VerticalAlignment="Top" Click="button1_Click" PointerMoved="button1_PointerMoved" KeyDown="button1_KeyDown"

如何自动触发按钮的所有事件?(Click,PointerMoved,KeyDown)

0
0 Comments

问题:如何在C# / XAML中以编程方式触发所有事件?

原因:我们想要以编程方式触发所有事件,而不是通过用户交互或其他方式来触发它们。

解决方法:

1. 从event获取委托列表。

var handler = myButton.Click;
var allDelegates = e.GetInvocationList();

2. 在for循环中调用每个委托。

foreach (var delegate in allDelegates) 
{
   delegate();
}

0