Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface WinRT设置魅力。由屏幕键盘覆盖的元素_User Interface_Windows 8_Client_Microsoft Metro_Windows Runtime - Fatal编程技术网

User interface WinRT设置魅力。由屏幕键盘覆盖的元素

User interface WinRT设置魅力。由屏幕键盘覆盖的元素,user-interface,windows-8,client,microsoft-metro,windows-runtime,User Interface,Windows 8,Client,Microsoft Metro,Windows Runtime,我正在为Windows 8(WInRT)开发,设置有问题。设置弹出窗口基于Microsoft SDK设置。设置面板弹出。内容由ScrollViewer->Grid->StackPanel包装。在StackPanel中,我有输入字段。当我试图在屏幕上填充最后一个字段时,键盘覆盖了它,我看不见字段,也不能滚动到它。有什么方法可以看到它并自动滚动到它吗?似乎Windows 8上的弹出窗口与Windows Phone上的弹出窗口遇到了相同的问题,当你在其中一个窗口上放置文本框时,它不会像不在弹出窗口中时

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

似乎Windows 8上的弹出窗口与Windows Phone上的弹出窗口遇到了相同的问题,当你在其中一个窗口上放置文本框时,它不会像不在弹出窗口中时一样与所有其他内容一起被推到一起

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

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

为了解决您的问题,您需要将您的魅力的UI放在这样的层中,而不是放在弹出窗口中。然后,当屏幕上的键盘会妨碍文本框的查看时,将所有UI向上推的内置机制应该重新开始工作

*编辑

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

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