在Windows Phone 7.5中弹出键盘时,禁用/限制滚动

时间:2013-02-10 08:03:50

标签: windows-phone-7 xaml keyboard silverlight-toolkit scrollviewer

基于链接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();在文本框焦点方法中,单击文本框时,横向页面会自动更改纵向,其宽度和高度已更改,甚至看起来与正确的纵向视图不相似。我不知道究竟发生了什么。任何帮助都可以得到赞赏。

有任何想法可以解决这个问题,等待您的宝贵回应。

1 个答案:

答案 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()进行处理。