Support window transparency
authorKangho Hur <kangho.hur@samsung.com>
Wed, 22 Mar 2017 08:09:47 +0000 (17:09 +0900)
committerKangho Hur <kangho.hur@samsung.com>
Mon, 24 Apr 2017 04:36:57 +0000 (13:36 +0900)
- Should make window transparent before invoke LoadApplication()
- According to the Tizen UX Guideline, naviframe (NavigationPage in Xamarin.Forms) has its own opaque background image by default.
- So, it always looks opaque even if window is transparent.
- To avoid these situations, DO NOT use NavigationPage and Navigation.PushModalAsync() if you want to make your application translucent.

Change-Id: I202bd1c500e6932f2fc49c9c5c88e06acb0659af

Xamarin.Forms.Platform.Tizen/Platform.cs
Xamarin.Forms.Platform.Tizen/Xamarin.Forms.Platform.Tizen.project.json

index 69a435e..4fe56e3 100644 (file)
@@ -135,6 +135,15 @@ namespace Xamarin.Forms.Platform.Tizen
                        IVisualElementRenderer pageRenderer = AttachRenderer(Page);
                        var naviItem = _naviframe.Push(pageRenderer.NativeView);
                        naviItem.TitleBarVisible = false;
+
+                       // Make naviitem transparent if Forms.Context.MainWindow is transparent.
+                       // Make sure that this is only for _navModel._naviTree. (not for _navModel._modalStack)
+                       // In addtion, the style of naviItem is only decided before the naviItem pushed into Naviframe. (not on-demand).
+                       if(Forms.Context.MainWindow.Alpha)
+                       {
+                               naviItem.Style = "default/transparent";
+                       }
+
                        ((Application)Page.RealParent).NavigationProxy.Inner = this;
 
                        Device.StartTimer(TimeSpan.Zero, () =>
index 154c271..9c281cb 100644 (file)
@@ -1,6 +1,6 @@
 {
   "dependencies": {
-    "ElmSharp": "1.1.0-beta-011",
+    "ElmSharp": "1.1.0-beta-016",
     "NETStandard.Library": "1.6.0",
     "System.Runtime.Serialization.Xml": "4.1.1",
     "Tizen.Applications": "1.1.0",