[WP8] CustomMessageBox dismissal no longer causes black SystemTray

The CustomMessageBox was having an interaction with WP8 where its
dismissal was changing the SystemTray's background color to black. It
appears that the SystemTray's background color was never set, despite
its appearing white prior to the use of a CustomMessageBox.
This commit is contained in:
Paul DiPietro 2016-03-28 00:48:21 -04:00
Родитель 1ee2a1d311
Коммит 2f3ed4b027
3 изменённых файлов: 46 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,35 @@
using System;
using Xamarin.Forms.CustomAttributes;
#if UITEST
using Xamarin.UITest;
using NUnit.Framework;
#endif
namespace Xamarin.Forms.Controls.Issues
{
[Preserve(AllMembers = true)]
[Issue(IssueTracker.Bugzilla, 25234, "Use of CustomMessageBox resets SystemTray BackgroundColor to black", PlatformAffected.WinPhone)]
public class Bugzilla25234 : TestContentPage
{
protected override void Init()
{
Content = new StackLayout
{
Children =
{
new Button
{
Text = "Click for Alert",
Command = new Command(() =>
{
DisplayAlert("Display Alert",
"If the theme is set to light on WP8, the status bar should return to the white color when closed", "OK");
})
}
}
};
}
}
}

Просмотреть файл

@ -19,6 +19,7 @@
</Compile>
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla22401.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla24769.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla25234.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla25662.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla26501.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla26868.cs" />

Просмотреть файл

@ -42,6 +42,7 @@ namespace Xamarin.Forms.Platform.WinPhone
_renderer = new Canvas();
_renderer.SizeChanged += RendererSizeChanged;
_renderer.Loaded += (sender, args) => UpdateSystemTray();
_tracker.CollectionChanged += (sender, args) => UpdateToolbarItems();
@ -483,6 +484,15 @@ namespace Xamarin.Forms.Platform.WinPhone
}
}
void UpdateSystemTray()
{
var lightThemeVisibility = (Visibility)System.Windows.Application.Current.Resources["PhoneLightThemeVisibility"];
if (lightThemeVisibility == Visibility.Visible && SystemTray.BackgroundColor == System.Windows.Media.Color.FromArgb(0, 0, 0, 0))
{
SystemTray.BackgroundColor = System.Windows.Media.Color.FromArgb(1, 255, 255, 255);
}
}
void UpdateToolbarItems()
{
if (_page.ApplicationBar == null)