在我的metro应用程序中,我有一个装满TextBox的页面,它们在StackPanel内垂直排列。通常,当用户单击其中一个底部文本框时,页面会自动向上滚动,以便聚焦的文本框不会被屏幕键盘遮挡。
但是如果页面显示在Popup中,则似乎不会发生这种自动滚动。我该怎么做才能使我的弹出窗口具有与普通页面相同的滚动行为?
答案 0 :(得分:1)
你是对的,当输入窗格出现时,弹出窗口不会自动滚动,因为弹出窗口位于主可视树中的根滚动查看器之外。
听起来你的Popup中有相当复杂的UI。您可能想要考虑是否可以在地铁友好的方式之外在Popup的上下文之外重新设置此UI。
如果要在输入窗格显示时尝试重新定位弹出窗口,则应该能够挂钩到InputPane.Showing事件。您必须自己进行计算并在InputPane隐藏时重置原始偏移量。