我有mainPage.xaml,在其中有一个网格,在网格中有一个画布。

<Grid Loaded="Grid_Loaded" ButtonBase.Click="Grid_ButtonClick">
    <Canvas x:Name="GameCanvas" Margin="12,52,98,26" />
</Grid>


我有一些用户控件UC1,UC2,UC3等,它们会根据游戏级别生成许多按钮。我用MainPage.xaml.cs中的列表值填充按钮的内容

private List<int> _listofValues = new List<int>();


因为所有按钮的功能都相同,所以我想处理父控件(在网格或画布中)中的按钮单击。

我可以在普通的WPF应用程序中做到这一点。第一个代码
ButtonBase.Click="Grid_ButtonClick"
但是我无法在Windows Phone 8应用程序中做到这一点。它给出了编译时错误。

知道如何在Windows Phone中实现buttonBase.click事件吗?

最佳答案

您可以使用GestureService来代替让父UI元素处理按钮单击的操作

这使您可以完全控制动态创建的按钮。在Geasture Listener事件中,您可以根据发送者处理每个事件。

var gl = GestureService.GetGestureListener(your_newButton);

gl.Tap += new EventHandler<GestureEventArgs>(GestureListener_Tap);


然后,当您注册它们或完成所有操作后,即可在此处处理所有这些。

private void GestureListener_Tap(object sender, GestureEventArgs e)
{
    Button theSendingButton = (sender as Button);
    //Handle your ish here
}


参考和完整示例here

09-05 03:22