2012-02-13 11 views
1

ピボットコントロールで構成されたWindows Phone Appを作成しています。ピボットアイテムを切り替える際に背景を変更したいと思います。現在のピボットアイテムのビューモデル情報に基づいて、それに一致する背景をロードします。Windows Phoneバックグラウンドイメージの変更パフォーマンスの問題

今、私がやっているが、私は私のピボットコントロールのonSelectionChangedハンドラ内のいくつかのコードを持っている:

 if (currentCondition.Contains("a")) 
     { 
      image = new BitmapImage(new Uri("Images/a.jpg", UriKind.Relative)); 
     } 
     else if (currentCondition.Contains("b")) 
     { 
      image = new BitmapImage(new Uri("Images/b", UriKind.Relative)); 
     } 
     ImageBrush ib = new ImageBrush(); 
     ib.ImageSource = image; 
     this.PivotControl.Background = ib; 

これは私が欲しいものでしたが、私は別のピボットアイテムを切り替えるときのパフォーマンスは、それは、悪いです画像をロードするのに約0.5秒間一時停止します。

私はパフォーマンスの問題を解決するためにどのようにアプローチすべきですか?

ありがとうございます!

答えて

4

これはパフォーマンスの問題を引き起こすことに驚くことはありません。電話機は、バックグラウンドを変更するたびにフルスクリーンイメージをデコードする必要があります。あなたのピボットコントロールを透明にしてから、画像のスタックを作成することをお勧めします。それぞれを表示/非表示にするために可視性を変更することができます。例:

<Grid> 
    <Image Source="backgroundOne.jpg" Visibility="Visible"/> 
    <Image Source="backgroundTwo.jpg" Visibility="Collapsed"/> 

    <Pivot> 
    ... 
    </Pivot> 
</Grid> 
+0

これは素晴らしい機能です。 –

関連する問題