1

テキストボックスの位置にスクロールするためのリンクスクロールビューアに基づく

キーボード起動時のスクロールの問題を解決しようとしましたが、ランドスケープ モードで問題が発生しました。

(App.Current as App).RootFrame.RenderTransform = new CompositeTransform(); を使用する際の問題 横向きモードで。

上記のソリューションは、Windows Phone 7.5 のデフォルトのカレンダー アプリと同様に、新しい予定ページに似た動作を生成するのに役立ちました。

しかし、これ (App.Current as App).RootFrame.RenderTransform = new CompositeTransform(); は、ページの横向きでは機能しません。

ポートレイト モードでは期待どおりに動作しますが、向きを変更すると (回転デバイス)、ページは横向きビューに自動的に変換されません。代わりに、ページは縦向きビューのように幅と高さが変更されて表示されます。

最初に、これを App クラスに配置しました (App.Current as App).RootFrame.RenderTransform = new CompositeTransform();

ポートレートモードで正常に動作しています。しかし、ランドスケープ モードでは、期待どおりに動作しませんでした。したがって、方向変更メソッドで複合変換を割り当てる前に、App クラスの静的変数に格納した (App.Current as App).RootFrame.RenderTransform の元の値に戻しました。これにより、ページがランドスケープ モードで正しく変更されるようになりました。

現在配置されています (App.Current as App).RootFrame.RenderTransform = new CompositeTransform(); テキストボックスのフォーカス方法では、テキストボックスをクリックすると、横向きのページが自動的に縦向きになり、幅と高さが変更され、正しい縦向きの表示にも似ていません。何が起こっているのか正確にはわかりません。どんな助けでも大歓迎です。

この問題を解決するためのアイデアがあれば、貴重な回答をお待ちしています。

4

1 に答える 1

0

ランドスケープ モードでは、Landscape Left または Landscape Right に基づいて、次のコードを使用します。

if(orientation == PageOrientation.LandscapeLeft) (App.Current as App).RootFrame.RenderTransform = new CompositeTransform() { Rotation = 90, TranslateX = 480 }; else (App.Current as App).RootFrame.RenderTransform = new CompositeTransform() { Rotation = -90, TranslateY = 800 };

これにより、横向きモードでもページが正しく変更されます。これにより、キーボードの起動時にページ ヘッダーが消えるのを防ぐことができます。scrollviewer 内の特定のテキストボックスへのスクロールは、特定のテキストボックスの GotFocus() イベントで ScrollToVerticaloffset() によって処理される必要があります。

于 2013-02-11T05:39:36.337 に答える