基于链接scrollviewer to scroll to textbox position
我尝试在启动键盘时解决滚动问题,但在横向模式下出现问题。
使用中的问题(App.Current as App).RootFrame.RenderTransform = new CompositeTransform();在横向模式中。
以上解决方案帮助我生成类似于New Appointment页面的行为,就像在Windows Phone 7.5的默认日历应用程序中一样。
但是这个(App.Current as App).RootFrame.RenderTransform = new CompositeTransform();不适用于页面的横向。
它在potrait模式下按预期工作,但在更改方向(转动设备)时,页面不会自动转换为横向视图,而是页面显示类似于纵向视图,其宽度和高度已更改。
最初我把它放在App类中(App.Current as App).RootFrame.RenderTransform = new CompositeTransform();
它在纵向模式下工作正常。但在横向模式下,它没有按预期工作。因此,在为方向更改方法分配复合变换之前,我还原为(App.Current as App).RootFrame.RenderTransform(我已经存储在App类中的静态变量中)的原始值。这使得页面可以正确地改变横向模式。
现已放置(App.Current as App).RootFrame.RenderTransform = new CompositeTransform();在文本框焦点方法中,单击文本框时,横向页面会自动更改纵向,其宽度和高度已更改,甚至看起来与正确的纵向视图不相似。我不知道究竟发生了什么。任何帮助都可以得到赞赏。
有任何想法可以解决这个问题,等待您的宝贵回应。
答案 0 :(得分:0)
在横向模式下,基于Landscape Left或Landscape Right,使用以下代码
if(orientation == PageOrientation.LandscapeLeft) (App.Current as App).RootFrame.RenderTransform = new CompositeTransform(){Rotation = 90,TranslateX = 480}; 其他 (App.Current as App).RootFrame.RenderTransform = new CompositeTransform(){Rotation = -90,TranslateY = 800};
这也会在横向模式下正确改变您的页面。这将阻止页面标题在键盘启动时消失。滚动到scrollviewer内的特定文本框需要由特定文本框的GotFocus()事件中的ScrollToVerticaloffset()进行处理。