summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls/ViewContainers/LayeredViewContainer.cs
blob: e22ecfb66b642b9583cd93c4d0f68ce8423c5d94 (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
36
37
38
using System;

namespace Xamarin.Forms.Controls
{
	internal class LayeredViewContainer<T> : ViewContainer<T>
		where T : View
	{
		public LayeredViewContainer (Enum formsMember, T view) : base (formsMember, view)
		{
			var layout = new AbsoluteLayout ();

			var hiddenButton = new Button {
				AutomationId = formsMember + "LayeredHiddenButton", 
				Text = "Covered Up"
			};

			layout.Children.Add (hiddenButton);
			AbsoluteLayout.SetLayoutFlags (hiddenButton, AbsoluteLayoutFlags.All);
			AbsoluteLayout.SetLayoutBounds (hiddenButton, new Rectangle (0, 0, 1, 1));
			layout.Children.Add (view);
			AbsoluteLayout.SetLayoutBounds (view, new Rectangle (0, 0, 1, 1));
			AbsoluteLayout.SetLayoutFlags (view, AbsoluteLayoutFlags.All);

			var hiddenLabel = new Label {
				AutomationId = formsMember + "LayeredLabel",
				Text = "Hidden Button (Not Clicked)"
			};

			hiddenButton.Clicked += (sender, args) => { hiddenLabel.Text = "Hidden Button (Clicked)"; };

			ContainerLayout = new StackLayout {
				AutomationId = formsMember + "Container", 
				Padding = 10, 
				Children = { TitleLabel, BoundsLabel, layout, hiddenLabel }
			};
		}
	}
}