【问题标题】:Windows Phone 8 (C#) -- Buttons not responding to long press on initial loadWindows Phone 8 (C#) -- 初始加载时长按按钮不响应
【发布时间】: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


【解决方案1】:

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

不要指望能解决这个问题,只要注意这一点,并学会在开始与模拟器交互之前单击模拟器中的某个中性位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多