0

我正在为 Windows 8 (WInRT) 开发,但设置魅力有问题。设置弹出窗口基于 Microsoft SDK 设置魅力。设置面板是弹出窗口。内容由 ScrollViewer -> Grid -> StackPanel 包装。在 StackPanel 我有输入字段。当我试图在覆盖它的屏幕键盘上填充它们中的最后一个时,我看不到字段并且无法滚动到它。有什么办法可以看到它并自动滚动到它?

4

2 回答 2

1

似乎 Windows 8 上的弹出窗口与它们在 Windows Phone 上遇到的问题相同,因为当您在其中一个上放置一个 TextBox 时 - 它不会与所有其他内容一起推送,就像它不在时那样一个弹出窗口。

我的解决方案是不对输入字段使用弹出窗口,而是使用您可以自己管理的布局。

默认情况下,该应用在其视觉根目录中有一个 Frame 控件。例如,您可以通过将您自己的 UserControl(我通常称之为 AppShell)放在那里来修改它,它有所有页面使用的 Frame,您可以有一个用于弹出窗口、登录屏幕、扩展启动屏幕等的层。

要解决您的问题,您需要将您的魅力 UI 放在此类层中,而不是在弹出窗口中。然后,当屏幕键盘会阻碍您的 TextBox 视图时,将所有 UI 向上推的内置机制应该重新开始工作。

*编辑

一个更简单的解决方案可能是确保您的设置面板弹出窗口在您的可视化树中是父级 - 例如,通过将其作为子元素添加到您的应用程序或页面的根网格中。事实证明,在这种情况下,当 OSK 出现时,它的内容确实会被推送。

于 2012-10-15T17:38:08.717 回答
0

看看这个帖子

它是一个弹出窗口包装器(将用户控件转换为弹出窗口),负责处理键盘的出现并相应地调整弹出窗口(以及用户控件)的大小。

于 2012-10-16T11:21:28.197 回答