0

我正在开发一个 Windows Phone 7.1 应用程序,我有一个 ScrollViewer,里面有一个 ItemsControl,ItemsControl 中的每个项目都包含两个 TextBox。当用户点击屏幕下半部分的 TextBox 输入值时,屏幕通常会向上滚动,这样屏幕键盘就不会覆盖焦点所在的 TextBox。然而,在我的应用程序中,这种情况只发生了大约 50% 的时间。剩下的 50%,键盘仍然出现,但屏幕没有向上滚动,聚焦的 TextBox 被屏幕键盘覆盖。

由于它并不总是发生并且我不能可靠地使问题发生或阻止它,我猜测在涉及更新布局或其他内容的 2 个线程之间发生了某种竞争条件。只是一个猜测。

是否有我应该在 TextBoxes 的 GotFocus 事件中调用的方法来确保专注于 TextBox 时的自动滚动将起作用?也许类似于这个其他问题的答案?

4

1 回答 1

0

我了解到问题来自我在 TextBox_GotFocus 事件处理程序中所做的事情:当键盘出现时,我将应用程序栏的不透明度更改为 1.0,然后我在 TextBox_LostFocus 事件中将不透明度更改回其旧值(~0.7)处理程序。删除ApplicationBar.Opacity = 1.0;线解决了问题。但是,它并没有解决这个问题引入的真正问题,这似乎是一个多线程问题。

于 2014-01-10T23:25:16.133 回答