From 2f3ed4b027eb47439ba83d32ccbfe8bcee212b98 Mon Sep 17 00:00:00 2001 From: Paul DiPietro Date: Mon, 28 Mar 2016 00:48:21 -0400 Subject: [PATCH] [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. --- .../Bugzilla25234.cs | 35 +++++++++++++++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 1 + Xamarin.Forms.Platform.WP8/Platform.cs | 10 ++++++ 3 files changed, 46 insertions(+) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla25234.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla25234.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla25234.cs new file mode 100644 index 000000000..b29cbd33e --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla25234.cs @@ -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"); + }) + } + } + }; + } + } +} diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index 81a6c2e2d..06a89b602 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -19,6 +19,7 @@ + diff --git a/Xamarin.Forms.Platform.WP8/Platform.cs b/Xamarin.Forms.Platform.WP8/Platform.cs index 363c6b84c..4626542f2 100644 --- a/Xamarin.Forms.Platform.WP8/Platform.cs +++ b/Xamarin.Forms.Platform.WP8/Platform.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)