8

私はWindows Phone 7.1 Mangoアプリケーションを使用しています。ここでは、主にテーマカラーをオーバーライドしています。ただし、ユーザーが白いテーマを選択していて、ページに暗い背景と暗いアプリケーションバーがある場合、アプリケーションバーは白い背景でレンダリングされ、アニメーション化され、迷惑なフリッカーを引き起こします。アニメーションを終了した後、背景色が暗い色に適切に設定されます。WP7のホワイトテーマでApplicationBarがちらつくのを防ぐ方法はありますか?

アプリバーアニメーションを無効にする方法や、アニメーションの背景色を初期設定する方法はありますか?

このvideo capture of the flickering issue.

XAMLを参照してください:背後

<phone:PhoneApplicationPage x:Class="AppBarFlickers.Page1" 
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
          xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
          xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
          xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
          xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" 
          mc:Ignorable="d" 
          d:DesignWidth="480" 
          d:DesignHeight="728" 
          SupportedOrientations="Portrait" 
          Orientation="Portrait"> 
    <Grid Background="Black"> 
     <Button Content="Toggle App Bar" 
       Margin="100,185,100,0" 
       VerticalAlignment="Top" 
       Click="ButtonClick" 
       Foreground="White" 
       Background="Black" 
       BorderBrush="White" /> 
    </Grid> 
    <phone:PhoneApplicationPage.ApplicationBar> 
     <shell:ApplicationBar BackgroundColor="Black" 
           ForegroundColor="White"> 
      <shell:ApplicationBarIconButton IconUri="/icon.png" 
              Text="Button 1" /> 
     </shell:ApplicationBar> 
    </phone:PhoneApplicationPage.ApplicationBar> 
</phone:PhoneApplicationPage> 

コード:ApplicationBarが隠れている間に、バックグラウンドがロードされていないよう

public partial class Page1 
{ 
    public Page1() 
    { 
     InitializeComponent(); 
    } 

    private void ButtonClick(object sender, RoutedEventArgs e) 
    { 
     ApplicationBar.IsVisible = !ApplicationBar.IsVisible; 
    } 
} 

答えて

19

が見えます。それはバーを隠す、そしては背景をロードするので、ちらつき。

回避方法:アプリケーションバーの不透明度を0.99に設定してください。透明度が見えなくなるのに十分高いので、アプリケーションにバックグラウンドを読み込ませる必要があります。

<phone:PhoneApplicationPage.ApplicationBar> 
    <shell:ApplicationBar BackgroundColor="Black" ForegroundColor="White" Opacity=".99" > 
     <shell:ApplicationBarIconButton IconUri="/icon.png" Text="Button 1" /> 
    </shell:ApplicationBar> 
</phone:PhoneApplicationPage.ApplicationBar> 
+1

ダング、+25担当者なぜなら、そこに透明なアプリケーションバーがあるので、それが頑丈な背景を持っていないスクリーン上でそれをやっていない理由がわかります。ありがとう! – bkaid

+1

あなたはこのようなことをどのように知っていますか:-) – Mahantesh

+0

@KooKiz素晴らしい回避策。どうもありがとう。 –

関連する問題