Exemple #1
0
        public Page1()
        {
            InitializeComponent();


            //var pageLayout = this.FindByName<StackLayout>("pageLayout");
            //var absolute = this.FindByName<AbsoluteLayout>("absolute");
            //var list = this.FindByName<Xamarin.Forms.ListView>("list");
            absolute.VerticalOptions   = LayoutOptions.FillAndExpand;
            absolute.HorizontalOptions = LayoutOptions.FillAndExpand;
            AbsoluteLayout.SetLayoutFlags(pageLayout, AbsoluteLayoutFlags.All);
            AbsoluteLayout.SetLayoutBounds(pageLayout, new Rectangle(0f, 0f, 1f, 1f));
            list.ItemsSource = new[] { "Hello", "World", "This", "Is", "Native", "Embedding" };
            var stack = new StackLayout
            {
                Padding           = 8,
                HorizontalOptions = LayoutOptions.Center,
            };



#if __ANDROID__
            var fab = new CheckableFab(Forms.Context);

            fab.SetImageResource(Droid.Resource.Drawable.ic_fancy_fab_icon);
            fab.Click += async(sender, e) =>
            {
                await Task.Delay(3000);

                await this.DisplayAlert("Native FAB Clicked",
                                        "Whoa!!!!!!", "OK");
            };


            fab.UseCompatPadding = true;
            stack.Children.Add(fab);
            absolute.Children.Add(stack);
            // Overlay the FAB in the bottom-right corner
            AbsoluteLayout.SetLayoutFlags(stack, AbsoluteLayoutFlags.PositionProportional);
            AbsoluteLayout.SetLayoutBounds(stack, new Rectangle(1f, 1f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));
#elif __IOS__
            var segmentControl = new UISegmentedControl();
            segmentControl.Frame = new CGRect(20, 20, 280, 40);
            segmentControl.InsertSegment("One", 0, false);
            segmentControl.InsertSegment("Two", 1, false);
            segmentControl.SelectedSegment = 1;
            segmentControl.ValueChanged   += async(sender, e) =>
            {
                var selectedSegmentId = (sender as UISegmentedControl).SelectedSegment;
                await this.DisplayAlert($"Native Segmented Control Clicked {selectedSegmentId}", "Whoa!!!!!!", "OK");
            };
            stack.Children.Add(segmentControl);
            pageLayout.Children.Insert(0, stack);
#elif UWP
            var calendar = new CalendarView();
            stack.Children.Add(calendar);
            pageLayout.Children.Insert(0, stack);
#endif
        }
        public App()
        {
            var list = new ListView();

            list.ItemsSource = new[] { "Hello", "World", "This", "Is", "Native", "Embedding" };

            // Main page layout
            var pageLayout = new StackLayout
            {
                Children =
                {
                    list
                }
            };

            var absolute = new AbsoluteLayout()
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand
            };

            // Position the pageLayout to fill the entire screen.
            // Manage positioning of child elements on the page by editing the pageLayout.
            AbsoluteLayout.SetLayoutFlags(pageLayout, AbsoluteLayoutFlags.All);
            AbsoluteLayout.SetLayoutBounds(pageLayout, new Rectangle(0f, 0f, 1f, 1f));
            absolute.Children.Add(pageLayout);


            var stack = new StackLayout
            {
                Padding           = 8,
                HorizontalOptions = LayoutOptions.Center,
            };

#if __ANDROID__
            var fab = new CheckableFab(Forms.Context);

            fab.SetImageResource(Droid.Resource.Drawable.ic_fancy_fab_icon);
            fab.Click += async(sender, e) =>
            {
                await Task.Delay(3000);

                await MainPage.DisplayAlert("Native FAB Clicked",
                                            "Whoa!!!!!!", "OK");
            };


            fab.UseCompatPadding = true;
            stack.Children.Add(fab);
            absolute.Children.Add(stack);
            // Overlay the FAB in the bottom-right corner
            AbsoluteLayout.SetLayoutFlags(stack, AbsoluteLayoutFlags.PositionProportional);
            AbsoluteLayout.SetLayoutBounds(stack, new Rectangle(1f, 1f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));
#elif __IOS__
            var segmentControl = new UISegmentedControl();
            segmentControl.Frame = new CGRect(20, 20, 280, 40);
            segmentControl.InsertSegment("One", 0, false);
            segmentControl.InsertSegment("Two", 1, false);
            segmentControl.SelectedSegment = 1;
            segmentControl.ValueChanged   += async(sender, e) =>
            {
                var selectedSegmentId = (sender as UISegmentedControl).SelectedSegment;
                await MainPage.DisplayAlert($"Native Segmented Control Clicked {selectedSegmentId}",
                                            "Whoa!!!!!!", "OK");
            };
            stack.Children.Add(segmentControl);
            pageLayout.Children.Insert(0, stack);
#endif

            // The root page of your application
            var content = new ContentPage
            {
                Title   = "NativeTest",
                Content = absolute
            };
            MainPage = new NavigationPage(content);
        }