我想使用C#/ XAML在Windows 8 UI/Metro UI应用程序的文本框中实现自动完成。Windows 8/Metro UI中的文本框下的自动完成框
此时,当软/触摸键盘显示时,它会遮挡自动完成框。但是,在文本框焦点上,Windows 8自动向上滚动整个视图并确保文本框处于焦点状态。
在现实中,我想要的只是向上滚动一点点的视图(实际上是通过自动完成框的高度)。
我知道我可以拦截InputPane.GetForCurrentView()的显示事件
我可以设置InputPaneVisibilityEventArgs.EnsuredFocusedElementInView到显示事件精细内真(所以Windows不会尝试做任何事情)....然而,我怎样才能调用与Windows 8相同的滚动功能,但要求它多滚动一下!?
这里的主网页代码:
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,200,0,0">
<TextBlock HorizontalAlignment="Center" FontSize="60">App 1</TextBlock>
<TextBlock HorizontalAlignment="Center">Enter text below</TextBlock>
<TextBox HorizontalAlignment="Center" Margin="-10,0,10,0" Width="400" Height="30"/>
<ListBox HorizontalAlignment="Center" Width="400">
<ListBoxItem>Auto complete item 1</ListBoxItem>
<ListBoxItem>Auto complete item 2</ListBoxItem>
<ListBoxItem>Auto complete item 3</ListBoxItem>
<ListBoxItem>Auto complete item 4</ListBoxItem>
<ListBoxItem>Auto complete item 5</ListBoxItem>
</ListBox>
</StackPanel>
</Grid>
如果启动了最低分辨率模拟器,用手去“触摸”的文本框,这将弹出软键盘。在真实应用程序中,随着用户输入文本,自动完成列表将显示项目。
所以简而言之,如何将屏幕向上移动一点以便用户可以看到整个自动完成列表?
请记住,在真实的应用程序,它会更糟糕,因为用户可能甚至没有注意到自动完成列表出现在键盘下方。
我真的很感谢一些建议,非常感谢!
你可以张贴一些代码,所以我可以尝试重现呢? :) – 2012-08-16 03:10:11
好的,我已经添加了代码。谢谢 – krisdyson 2012-08-17 10:47:29
我一直在寻找AutoCompleteBox一段时间,你可以分享它,如果你得到它的工作? – 2012-11-12 12:33:09