我正在使用模拟器测试一个简单的Windows Phone 8应用程序。我发现在应用程序的初始加载时,Button对象将无法正确响应长按 - 如果该按钮是我点击的第一件事(让我说我点击并按住),它只会触发Click事件绑定到按钮,好像我已经快速点击它。但是,如果我点击屏幕上的其他位置,然后长按按钮,它就会正常运行(即突出显示但不会执行其Click事件,直到我取消点击)。
由于我没有Windows手机,我不确定这是否是模拟器特定的问题或者是什么。但是,假设不是,我认为这是焦点问题,因为我可以点击屏幕上的其他位置,然后长按按钮使其行为正确。
我的第一个想法是在应用最初加载时给出按钮焦点。但是,我无法弄清楚如何做到这一点,因为当我尝试在onNavigatedTo事件或Loaded事件中使用myButton.Focus()时,按钮实际上并没有获得焦点(名称“Loaded”似乎是有点误导;当我在绑定到该事件的函数中放置断点时,我可以看到当前屏幕的背景尚未加载)。是否有另一个函数可以在UI加载后调用myButton.Focus()?如果没有办法最初分配按钮焦点,我就没有想法了。有没有人可以解决这个问题?
答案 0 :(得分:1)
因为WP8仿真器是单独的Hyper-V机器,所以当您第一次单击仿真器时它将捕获鼠标。这可能会影响您的应用程序中的点击/点击(和相关事件)。
不要指望对此进行修复,只需注意这一点,并在开始与其进行交互之前学习单击模拟器中的某个空档。