1

我正在使用模拟器测试一个简单的 Windows Phone 8 应用程序。我发现在应用程序的初始加载时, Button 对象不会正确响应长按 - 如果该按钮是我单击的第一件事(假设我单击并按住),它只会触发 Click 事件就像我快速点击它一样绑定到按钮。但是,如果我点击屏幕中的其他位置,然后长按按钮,它的行为正确(即它被突出显示,但在我取消单击之前不会执行其 Click 事件)。

由于我没有 Windows 手机,我不确定这是模拟器特定的问题还是什么。但是,假设不是,我认为这是焦点问题,因为我可以单击屏幕上的其他位置,然后长按按钮并使其正常运行。

我的第一个想法是在应用程序最初加载时赋予按钮焦点。但是,我不太清楚如何做到这一点,因为当我尝试在 onNavigatedTo 事件或 Loaded 事件中使用 myButton.Focus() 时,按钮实际上并没有获得焦点(名称“Loaded”似乎是有点误导;当我在绑定到该事件的函数中放置断点时,我可以看到当前屏幕的背景尚未加载)。加载 UI 后,是否有另一个函数可以调用 myButton.Focus() ?如果没有办法最初分配按钮焦点,我就没有主意了。有没有人可以解决这个问题?

4

1 回答 1

1

因为 WP8 模拟器是一个单独的 Hyper-V 机器,所以当你第一次点击模拟器时,它会捕获鼠标。这可能会影响作为应用程序一部分的单击/点击(和相关事件)。

不要指望对此进行修复,只需注意这一点并学会在开始与模拟器交互之前单击模拟器中的某个中性位置。

于 2012-12-11T17:34:56.297 回答