2011-07-05 6 views
1

パノラマコントロール付きのWindows Phoneアプリがあります。WP7パノラマコントロールがアプリケーションバーを隠しているときに遅れて滑る

現在、Panoramaには2ページあります。

1つのページにはボタン付きのアプリケーションバーが表示され、別のページにはボタンはありません。

パノラマのSelectionChangedイベントを使用して、ApplicationBarのIsVisibleプロパティを変更します。

private void Panorama_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) 
     { 
      ApplicationBar.IsVisible = Panorama.SelectedIndex == 0; 
     } 

必要に応じて、私が得る機能があるが、そのような行動に、私は私のパノラマの恐ろしい遅れ(スライドアニメーションの瞬間的な凍結)を取得します。これはおそらく、UIスレッドが非常にWindowsの電話「ネイティブ」アプリケーションバーを操作しなければならないために起こります。

この問題を避けるにはどうすればよいですか?

私はApplicationBar.IsVisible = Panorama.SelectedIndex == 0;を別のスレッドで呼びますか?または、アイテムのManipulationStartedイベントとManipulationCompletedイベントを使用してアプリケーションバーを非表示にする必要がありますか?

ありがとうございました。

答えて

0

パノラマコントロールと同じページでアプリケーションバーを使用しないようにアプリケーションを設計する必要があります。

2つは一緒に使用するようには設計されていません。これは、設計上および技術上の理由からです。 (設計上の理由からそれらを決して使うべきではないので、それらを使用する際には技術的な問題があり、これは対処することが非常に簡単ではありません)。

ユーザーが操作するパノラマアイテムにコンテンツがある場合、コントロールをアイテムまたは別のページに移動します(そのコンテンツを選択してリンクしている場合)。

更新
誰もが指摘する前に - ハブ(オフィス&人)の一部は、現在のマンゴーにパノラマとアプリケーションバーを組み合わせて構築します。 Micorsoftからの公式コメントはありません。 (私は尋ねました)マンゴーのデザインガイドラインはまだリリースされていません。彼らがなるまで、これ以上の情報はありそうもありません。
マンゴーベータSDKを使用したパノラマテンプレートには、アプリケーションバーとパノラマを組み合わせてはいけないというコメントが含まれています。

+0

ありがとうございます。私はAplicationBarの使用法に関するパノラマプロジェクトテンプレートの警告を見てきました。しかし、市場のPocketレコーダーアプリケーションが、パノラマのOnSelectionChangedイベントの処理に直面している問題なしに、同じ機能を提供していることがわかります。私の推測では、Appbarを隠して表示するために、他のトリガーメカニズムを使用しているということです。 –

0

別のスレッドでこのコードを実行すると、終わりにDeployment.Current.Dispatcher.BeginInvoke()を使用してUIスレッドに効果を適用する必要があります(そうしないと、クロススレッド例外)。

しかし、この遅れている問題のために、私は200ミリ秒の遅延の後に可視性を変えてみるといいでしょう。 Thayが助けてくれるかもしれない。

1

アプリケーションバー自体を隠す代わりに、アプリケーションバーアイコンを削除/追加することでスムーズなアニメーションを得ることができました。

+0

どうしたのですか?あなたはボタンコレクションをクリアしましたか、ApplicationBarの状態を保存してから、同じボタンを表示することができましたか? –

0

ここで私はあなたのパノラマでアプリケーションバーを使用する場合、ModeをMinimizedに設定していることを示しています。Panorama Control Design Guidelines for Windows Phone このモードは、パノラマページの画面スペースを最大限にするように特別に設計されています。

1

デフォルト値(1.0)ではなく、アプリケーションバーの不透明度を0.999999に設定してください。それは動作するはずです。

1

誰かがこの問題に遭遇した場合のために、datou.guoは正しいです。不透明度の詳細については、ここでそれを説明します。彼らは、アプリバーの不透明度は0、0.5、または1を使用することをお勧めしますAppBar Documentation

。不透明度が1に設定されている場合、アプリケーションバーが変更されたときにページのサイズが実際に変更され、遅れが説明されます。不透明度が.5の場合、それは起こりません。彼らは特に他の不透明度の値は言及していませんが、0.99で試してみましたが、それは遅れを防ぐものでした。それは透明だときのアプリバーは、もはやページ上のスペースを占有するので、あなたはおそらく、ページの下部に余裕を持つようにレイアウトを更新する必要がないでしょう

注意。

関連する問題