我认为获得
是非常标准的'当软键盘出现'
时,将聚焦的TextBox滚动到视图中
但是我花在解决这个问题上的时间越多,感觉就越划分为零。
我用翻转视图编写了一个应用程序,其中包含以编程方式创建的页面。
我的应用程序进入ViewModelFirst,因此Xaml-Views通过DataTemplateSelector从ResourceDictionary加载。
MainPage底部的TextBox(一个xaml页面 - 不是来自ResourceDictionary)可以工作。
一旦页面来自DataTemplateSelector(因此必然来自ResourceDictionary),它就不会按预期运行。
BTW:我决定采用ResourceDictionary,因为在我看来,从xaml页面获取DataTemplate是不可能的。如果有人知道这样做的方法,请告诉我:)所以这是我的示例项目: https://drive.google.com/file/d/0BzDVtvE9NKaMd2dBMWMzTWJtN1E/view?usp=sharing
提前谢谢大家
祝你好运 亚历
答案 0 :(得分:1)
我通过将FlipView的ItemsPanel更改为水平滚动StackPanel来解决这个问题。默认情况下,VirtualizingStackPanel正在使用中。
我的方法如下:
private ItemsPanelTemplate GetItemsPanelTemplate() {
string xaml = "<ItemsPanelTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'><StackPanel Orientation='Horizontal' AreScrollSnapPointsRegular='True' /></ItemsPanelTemplate>";
return XamlReader.Load(xaml) as ItemsPanelTemplate;
}
我称这种方法是这样的:
Flip.ItemsPanel = GetItemsPanelTemplate();
在这里,我要感谢feO2x(https://stackoverflow.com/users/1560623/feo2x)进入他的博客(http://www.feo2x.com/posts/2015-12-06-flipview-and-problems-with-input-controls-part-1/)
但要注意: 根据feO2x的博文,VirtualizingStackPanel使用了一种延迟加载,但现在使用的(标准)StackPanel却没有。 所以它可能会变慢。
我希望,这可能有助于某人。