【发布时间】:2012-12-10 10:30:59
【问题描述】:
我正在使用模拟器测试一个简单的 Windows Phone 8 应用程序。我发现在应用程序的初始加载时, Button 对象不会正确响应长按 - 如果该按钮是我单击的第一件事(假设我单击并按住),它只会触发 Click 事件就像我快速点击它一样绑定到按钮。但是,如果我点击屏幕中的其他位置,然后长按按钮,它的行为正确(即,它被突出显示,但在我取消点击之前不会执行其 Click 事件)。
由于我没有 Windows 手机,我不确定这是模拟器特有的问题还是什么。但是,假设不是,我认为这是焦点问题,因为我可以单击屏幕上的其他位置,然后长按按钮并使其正常运行。
我的第一个想法是在应用最初加载时赋予按钮焦点。但是,我不太清楚如何做到这一点,因为当我尝试在 onNavigatedTo 事件或 Loaded 事件中使用 myButton.Focus() 时,按钮实际上并没有获得焦点(名称“Loaded”似乎是有点误导;当我在绑定到该事件的函数中放置断点时,我可以看到当前屏幕的背景尚未加载)。加载 UI 后,是否有另一个函数可以调用 myButton.Focus() ?如果没有办法最初分配按钮焦点,我就没有主意了。有没有人可以解决这个问题?
【问题讨论】:
-
我已经注意到模拟器上的焦点问题,所以我很确定这是您面临的问题。确保的一种方法是:像往常一样从 Visual Studio 启动应用程序,退出应用程序(后退按钮),然后直接从模拟器重新启动(向右滑动以显示应用程序列表,然后点击您的应用程序)。然后检查您是否仍然有问题。
-
哦,很好,那不只是我有问题。我确实注意到,当我退出并重新启动时,它会正确执行。但是,我不确定这是否是因为活动只是处于休眠状态,而不是在发布之间被删除。
标签: c# button click windows-phone-8 long-press