summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.WP8/NavigationPageRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.WP8/NavigationPageRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.WP8/NavigationPageRenderer.cs26
1 files changed, 15 insertions, 11 deletions
diff --git a/Xamarin.Forms.Platform.WP8/NavigationPageRenderer.cs b/Xamarin.Forms.Platform.WP8/NavigationPageRenderer.cs
index 2bd5b7b3..1637b1d0 100644
--- a/Xamarin.Forms.Platform.WP8/NavigationPageRenderer.cs
+++ b/Xamarin.Forms.Platform.WP8/NavigationPageRenderer.cs
@@ -19,6 +19,9 @@ namespace Xamarin.Forms.Platform.WinPhone
AutoPackage = false;
}
+ IPageController PageController => Element as IPageController;
+ IElementController ElementController => Element as IElementController;
+
protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e)
{
base.OnElementChanged(e);
@@ -37,9 +40,10 @@ namespace Xamarin.Forms.Platform.WinPhone
Element.PropertyChanged += OnElementPropertyChanged;
var platform = (Platform)Element.Platform;
- Element.ContainerArea = new Rectangle(new Point(0, 0), platform.Size);
- platform.SizeChanged += (sender, args) => Element.ContainerArea = new Rectangle(new Point(0, 0), platform.Size);
+ PageController.ContainerArea = new Rectangle(new Point(0, 0), platform.Size);
+
+ platform.SizeChanged += (sender, args) => PageController.ContainerArea = new Rectangle(new Point(0, 0), platform.Size);
List<Page> stack = GetStack();
if (stack.Count > 0)
@@ -59,7 +63,7 @@ namespace Xamarin.Forms.Platform.WinPhone
else
init();
- Loaded += (sender, args) => Element.SendAppearing();
+ Loaded += (sender, args) => PageController.SendAppearing();
Unloaded += OnUnloaded;
}
@@ -79,10 +83,10 @@ namespace Xamarin.Forms.Platform.WinPhone
List<Page> GetStack()
{
- int count = Element.InternalChildren.Count;
+ int count = PageController.InternalChildren.Count;
var stack = new List<Page>(count);
for (var i = 0; i < count; i++)
- stack.Add((Page)Element.InternalChildren[i]);
+ stack.Add((Page)PageController.InternalChildren[i]);
return stack;
}
@@ -97,9 +101,9 @@ namespace Xamarin.Forms.Platform.WinPhone
if (platform == null)
return;
- for (var i = 0; i < Element.LogicalChildren.Count; i++)
+ for (var i = 0; i < ElementController.LogicalChildren.Count; i++)
{
- var page = Element.LogicalChildren[i] as Page;
+ var page = ElementController.LogicalChildren[i] as Page;
if (page != null)
platform.RemovePage(page, false);
}
@@ -107,7 +111,7 @@ namespace Xamarin.Forms.Platform.WinPhone
void OnUnloaded(object sender, RoutedEventArgs args)
{
- Element.SendDisappearing();
+ PageController.SendDisappearing();
}
void PageOnPopped(object sender, NavigationRequestedEventArgs eventArg)
@@ -136,7 +140,7 @@ namespace Xamarin.Forms.Platform.WinPhone
if (platform != null)
{
if (e.Page == ((INavigationPageController)Element).StackCopy.LastOrDefault())
- e.Page.IgnoresContainerArea = true;
+ ((IPageController)e.Page).IgnoresContainerArea = true;
e.Task = platform.PushCore(e.Page, Element, e.Animated, e.Realize).ContinueWith((t, o) => true, null);
}
}
@@ -169,7 +173,7 @@ namespace Xamarin.Forms.Platform.WinPhone
{
Children.RemoveAt(0);
- var page = renderer.Element as Page;
+ var page = renderer.Element as IPageController;
if (page != null)
page.IgnoresContainerArea = false;
@@ -183,7 +187,7 @@ namespace Xamarin.Forms.Platform.WinPhone
if (first == null)
return;
- first.IgnoresContainerArea = true;
+ ((IPageController)first).IgnoresContainerArea = true;
IVisualElementRenderer firstRenderer = Platform.GetRenderer(first);
if (firstRenderer == null)