2012-07-26 58 views
3

因此,我只是对我的项目进行测试,并意识到如果您有链接(例如导航服务),则需要双击和双击。这意味着如果我有一个按钮转到应用程序中的另一个页面,除非我不处理双击,该应用程序将崩溃。手柄双击全球WP7?

所以,如果我有这样的:

<toolkit:HubTile Name="XXX" 
     Message="XXXYYY" Source="ZZZ" 
     Title="XYZ" Tap="XYZ_Tap"/> 

如果有谁双水龙头这种瓷砖,应用程序会崩溃。因此,我必须添加

DoubleTap="XYZ_DoubleTap" 

属性。但是,这可能会让人感到疲劳,似乎没有必要。那么是否有办法在全球范围内处理所有双击?那么如果我想实际上在某个地方实现它,只需重写它呢?谢谢:)

编辑:DoubleTap的“全局”事件处理程序很简单,什么都不做。这样我就不必为每个链接或按钮重写它。每次处理一个没有处理的DoubleTap时,都不会抛出异常。

回答

1

您应该创建一个继承自HubTile的自定义控件,并将DoubleTap事件设置为在该类中不执行任何操作。

+0

这正是我现在正在做的。我只希望每个DoubleTap都有更多的东西,而不是每个元素的特定属性。不过谢谢你,因为你的答案是最接近我想要的。 – Div 2012-07-27 17:39:55

2

最有可能发生崩溃的原因是在第二个“tap”上引发了异常。当“任务不在前台”时,“导航”的内容不被允许。

我想为DoubleTap放置一个空的事件处理程序将会起作用,因为它可以识别双击事件并且什么也不做。另一种可能应该完成的方法是将导航调用包装在try/catch块中,以捕获第二次敲击抛出的异常。

但是,为了解决您的具体问题,除了无所作为之外,您想象的是双击的全局处理?

+0

那么我知道为什么应用程序崩溃了,也知道为什么会发生异常。这就是我为什么要解决这个问题。但是为每一个按钮,链接或者什么都不需要,放置一个空的DoubleTap事件处理程序。 – Div 2012-07-27 01:43:09

+0

因此,全球处理程序负责管理双击的操作,这没什么。这样我就不必为每个链接重写DoubleTap事件处理程序。 – Div 2012-07-27 01:44:09

+0

不幸的是,事件处理程序被限制为特定类的实例成员,所以我认为你不能这样做。我仍然认为更简单的解决方案就是在try/catch中捕获异常。请参阅事件要求的链接:http://msdn.microsoft.com/en-us/library/cc221357%28v=VS.95%29.aspx – Gambit 2012-07-27 06:50:33