8

Tôi có một ứng dụng Windows Phone 7.1 Mango, nơi tôi đã chủ yếu ghi đè thành công các màu chủ đề được tạo sẵn. Tuy nhiên, nếu người dùng có chủ đề màu trắng được chọn và trang có nền tối và thanh ứng dụng tối, thanh ứng dụng sẽ hiển thị và hoạt ảnh với nền trắng gây ra nhấp nháy gây phiền nhiễu. Sau khi nó được thực hiện hoạt hình màu nền được thiết lập để một màu tối một cách thích hợp.Làm thế nào bạn có thể ngăn chặn ApplicationBar nhấp nháy trên chủ đề màu trắng WP7?

Có cách nào để vô hiệu hóa hoạt ảnh trên thanh ứng dụng hoặc đặt màu nền hoạt ảnh ban đầu của nó không?

Xem này 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> 

Mã đằng sau:

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

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

Trả lời

19

Hình như nền không được tải trong khi ApplicationBar được cất giấu. Nó ẩn thanh, sau đó tải nền, do đó nhấp nháy.

Tìm giải pháp thay thế: đặt độ mờ của thanh ứng dụng thành 0,99. Đó là đủ cao cho sự minh bạch là vô hình, và nó sẽ buộc các ứng dụng để tải nền.

<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

Dang, +25 đại diện cho bạn. Điều đó cũng giải thích tại sao nó không hoạt động trên màn hình không có nền tảng vững chắc, vì tôi có thanh ứng dụng trong suốt ở đó. Cảm ơn! – bkaid

+1

Cách các bạn biết những điều sau :-) – Mahantesh

+0

@KooKiz giải pháp tuyệt vời. Cảm ơn rất nhiều. –