8

我有一個Windows Phone 7.1芒果應用程序,其中我已經成功地重寫了內置的主題顏色。但是,如果用戶選擇了白色主題,並且頁面具有黑色背景和黑色應用程序欄,則應用程序欄會呈現並呈現帶有白色背景的動畫,從而導致惱人的閃爍。完成動畫後,背景顏色會適當地設置爲暗色。如何防止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> 

代碼:

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 2012-01-05 20:30:24

+1

你們如何知道這些事情:-) – Mahantesh 2013-01-07 05:29:29

+0

@KooKiz很好的解決方法。非常感謝。 – 2014-06-18 05:37:38