我正在开发一个Windows Phone 7.1应用程序,我有一个带有ItemsControl的ScrollViewer,其中ItemsControl中的每个项目都包含两个TextBox。当用户点击屏幕下半部分的TextBox以输入值时,屏幕通常向上滚动,以便屏幕键盘不会覆盖聚焦的TextBox。但是,在我的应用程序中,这只发生在大约50%的时间。另外50%,键盘仍然出现,但屏幕不向上滚动,聚焦的TextBox被屏幕键盘覆盖。
由于它并不总是发生并且我无法可靠地解决问题或阻止它,我猜测在两个线程之间发生了某种竞争条件,涉及更新布局或其他事情。只是一个猜测。
我是否应该在TextBoxes的GotFocus事件中调用一个方法,以确保在关注TextBox时自动滚动是否有效?也许类似于this other question的回答?
答案 0 :(得分:0)
我了解到问题来自于我在TextBox_GotFocus事件处理程序中所做的事情:当键盘出现时我将应用程序栏的不透明度更改为1.0并且我将不透明度更改回其旧值(~0.7) TextBox_LostFocus事件处理程序。删除ApplicationBar.Opacity = 1.0;
行可解决问题。但是,它并没有解决这个问题引入的实际问题,这似乎是一个多线程问题。