【问题标题】:ButtonBase.Click is missing in Windows Phone 8Windows Phone 8 中缺少 ButtonBase.Click
【发布时间】:2017-12-18 14:06:17
【问题描述】:

我有 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 事件吗?

【问题讨论】:

标签: c# wpf windows-phone-8


【解决方案1】:

您可以使用 GestureService 代替父 UI 元素处理按钮点击

这使您可以在动态创建按钮时完全控制它们。在 Gesture 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

【讨论】:

  • 好的,但是如果我首先在用户控件中创建所有按钮,然后我将用户控件加载到gamecanvas.children.add(uc1);,那么我该如何处理所有按钮点击.所有按钮单击实际上是相同的任务,因此只需一个处理单击事件的代码就足够了,只有我会检查Sender as Button
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多