summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.UAP/FormsPresenter.cs
blob: b7bad1f6e611258b96075894947e2abd6d2b6fe8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using Windows.UI.Xaml;
using Xamarin.Forms;

namespace Xamarin.Forms.Platform.UWP
{
	internal class FormsPresenter : Windows.UI.Xaml.Controls.ContentPresenter
	{
		public FormsPresenter()
		{
			Loaded += FormsPresenter_Loaded;
			Unloaded += FormsPresenter_Unloaded;
			SizeChanged += (s, e) =>
			{
				if (ActualWidth > 0 && ActualHeight > 0)
				{
					var page = (Page)DataContext;
					((Page)page.RealParent).ContainerArea = new Rectangle(0, 0, ActualWidth, ActualHeight);
				}
			};
		}

		void FormsPresenter_Loaded(object sender, RoutedEventArgs e)
		{
			var page = (Page)DataContext;
			page.SendAppearing();
		}

		void FormsPresenter_Unloaded(object sender, RoutedEventArgs e)
		{
			var page = (Page)DataContext;
			page.SendDisappearing();
		}
	}
}