【发布时间】:2015-02-02 12:29:13
【问题描述】:
当输入字段被软键盘重叠时,如何到达 ScrollViewer 中的输入字段?
这个场景很容易重现:
-
使用包含一些文本框的 ScrollViewer 创建一个新页面。根据需要制作尽可能多的文本框,直到您需要滚动页面以到达最后三个文本框。
<ScrollViewer> <StackPanel Orientation="Vertical"> <TextBox Margin="20" /> <TextBox Margin="20" /> <TextBox Margin="20" /> .. <TextBox Margin="20" /> <TextBox Margin="20" /> <TextBox Margin="20" PlaceholderText="3" /> <TextBox Margin="20" PlaceholderText="2" /> <TextBox Margin="20" PlaceholderText="1" /> </StackPanel> </ScrollViewer> 启动应用程序并点击“Placeholder 3”。键盘弹出并与“Paceholder 2”和“Placeholder 1”重叠。
如何改进布局,以便无需一直关闭和重新打开键盘就可以访问这些文本框(“1”和“2”)?
可以在每个 WindowsPhone 上找到一个显示有效解决方案的示例:设置 => VPN => 启用 VPN => 添加新配置文件 => 单击任何文本框,您会看到可以滚动到每个部分尽管软键盘已启动,但布局的变化。
【问题讨论】:
-
Keyboard overlaps textbox 的可能重复项
-
不知何故,它们是相关的,是的。但就我而言,我并没有改变焦点,只是想在键盘周围和上方滚动完整的布局。
-
你仍然需要滚动到垂直偏移来否定键盘的高度并将内容提供到滚动查看器视口的可用空间中,这个概念基本上是相同的你的问题和那个问题一样。
-
链接的问题也适用于 WP8,我的问题适用于 WP8.1。就我而言,没有可翻译的 Application.Current.RootVisual 。我用谷歌搜索了一下,但找不到任何替代属性。它可以与 Window.Current.CoreWindow 一起使用吗?但是我该如何翻译呢?
-
我发现这是 y 平移偏移量:social.msdn.microsoft.com/Forums/windowsapps/en-US/… 但是当键盘打开时我仍然无法滚动到任何我想要的位置。过度滚动效果总是在我接近布局的上端之前就开始了。
标签: c# xaml keyboard windows-phone-8.1 scrollviewer