1

在我的 Metro 应用程序中,我有一页充满了 TextBox,它们在 StackPanel 中垂直排列。通常,当用户单击底部文本框之一时,页面会自动向上滚动,以便焦点文本框不会被屏幕键盘遮挡。

但是,如果页面显示在 Popup 中,则似乎不会发生这种自动滚动。我应该怎么做才能使我的弹出窗口具有与普通页面相同的滚动行为?

4

1 回答 1

1

没错,当输入窗格出现时,弹出窗口不会自动滚动,因为弹出窗口位于主视觉树中的根滚动查看器之外。

听起来您的弹出窗口中有相当复杂的 UI。您可能需要考虑是否可以在 Popup 的上下文之外以一种对 Metro 友好的方式重新设计此 UI。

如果您想在输入窗格显示时尝试重新定位弹出窗口,您应该能够挂钩 InputPane.Showing 事件。您必须自己进行计算并在 InputPane 隐藏时重置原始偏移量。

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.viewmanagement.inputpane.showing.aspx

于 2013-02-13T07:23:08.867 回答