Exemplo n.º 1
0
        public MasterSamplePageWP(MasterSample sampleList)
        {
            contentRootLayout = new Grid
            {
                VerticalOptions = LayoutOptions.FillAndExpand,
                RowDefinitions  =
                {
                    new RowDefinition {
                        Height = new GridLength(1, GridUnitType.Star)
                    },
                    new RowDefinition {
                        Height = GridLength.Auto
                    },
                }
            };

            settingLayout = new StackLayout {
                Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.CenterAndExpand, Padding = new Thickness(15)
            };

            if (App.Platform == Platforms.UWP && Device.Idiom == TargetIdiom.Phone)
            {
                settingLayout.Padding       = new Thickness(5, 0, 0, 5);
                settingLayout.HeightRequest = 30;
            }

            button = new Image();
            if (Device.OS == TargetPlatform.Windows && Device.Idiom == TargetIdiom.Phone)
            {
                NavigationPage.SetHasNavigationBar(this, false);
            }
            Title = Device.OS == TargetPlatform.Android ? "  " + sampleList.Title : sampleList.Title;


            listView = new ListView
            {
                ItemsSource  = sampleList.Samples,
                ItemTemplate = new DataTemplate(typeof(SampleListCell)),
                RowHeight    = 45
            };

            if (App.Platform == Platforms.UWP && Device.Idiom == TargetIdiom.Phone)
            {
                listView.RowHeight = 35;
            }

            var contentLayout = new StackLayout {
                Children = { listView }
            };

            if (Device.OS == TargetPlatform.Windows && Device.Idiom == TargetIdiom.Phone)
            {
                contentLayout.Padding = new Thickness(0, 0, 0, 60);
            }
            var master = new ContentPage {
                Title = "Sample List", Content = contentLayout
            };


            samplePage = Activator.CreateInstance(Type.GetType(sampleList.Samples[0].Type)) as SamplePage;


            listView.ItemSelected += (sender, args) =>
            {
                if (listView.SelectedItem == null)
                {
                    return;
                }

                sampleDetails      = args.SelectedItem as SampleDetails;
                App.SelectedSample = sampleDetails.Title;
                var type = Type.GetType(sampleDetails.Type);
                if (type == null)
                {
                    ChangeSample(new EmptyContent().ContentView);
                }
                else
                {
                    samplePage = Activator.CreateInstance(type) as SamplePage;

                    if (samplePage.ToolbarItems.Count > 0)
                    {
                        Image toolbarItem = new Image {
                            StyleId = "Settings"
                        };
                        toolbarItem.Source = App.IsDark ? "Assets/Setting_Light.png" : "Assets/Setting.png";
                        if (!settingLayout.Children.Contains(toolbarItem) && settingLayout.Children.Count <= 1)
                        {
                            settingLayout.Children.Add(toolbarItem);
                        }

                        var tapGesture1 = new TapGestureRecognizer();
                        tapGesture1.Tapped += (sender1, args1) =>
                        {
                            if (toolbarItem.StyleId == "Settings")
                            {
                                samplePage.ShowSettingsView();
                                toolbarItem.StyleId = "Apply";
                                toolbarItem.Source  = App.IsDark ? "Assets/Apply_Light.png" : "Assets/Apply.png";
                                button.IsVisible    = false;
                            }
                            else
                            {
                                samplePage.HideSettingsView();
                                toolbarItem.StyleId = "Settings";
                                toolbarItem.Source  = App.IsDark ? "Assets/Setting_Light.png" : "Assets/Setting.png";
                                if (sampleList.Samples.Count != 1)
                                {
                                    button.IsVisible = true;
                                }
                            }
                        };
                        toolbarItem.GestureRecognizers.Add(tapGesture1);
                    }
                    else
                    {
                        if (settingLayout.Children.Count > 1)
                        {
                            settingLayout.Children.RemoveAt(1);
                        }
                    }
                    ChangeSample(samplePage.Content);
                }
                //listView.SelectedItem = null;
                //   button.IsVisible = true;
            };

            if (sampleList.Samples.Count > 0)
            {
                listView.SelectedItem = sampleList.Samples[0];
            }

            contentRootLayout.Children.Add(samplePage.Content);
            button = new Image()
            {
                StyleId = "Samples List"
            };
            var tapGesture = new TapGestureRecognizer();

            tapGesture.Tapped += (sender1, args1) =>
            {
                OnSampleChanged(samplePage.Content);
            };
            button.GestureRecognizers.Add(tapGesture);
            button.Source = App.IsDark ? "Assets/Controls_Light.png" : "Assets/Controls.png";
            settingLayout.Children.Insert(0, button);

            if (sampleList.Samples.Count == 1)
            {
                button.IsVisible = false;
            }

            contentRootLayout.Children.Add(settingLayout, 0, 1);
            Content = contentRootLayout;
        }
        public MasterSamplePageWP(MasterSample sampleList)
        {
            if (Device.OS == TargetPlatform.Windows && Device.Idiom == TargetIdiom.Phone)
            {
                NavigationPage.SetHasNavigationBar(this, false);
            }
            Title = Device.OS == TargetPlatform.Android ? "  " + sampleList.Title : sampleList.Title;

            //if (sampleList.Samples.Count == 1)
            //{
            //    var type = Type.GetType(sampleList.Samples[0].Type);
            //    if (type == null)
            //    {
            //        Detail = new EmptyContent();
            //    }
            //    else
            //    {
            //        var samplePage = Activator.CreateInstance(type) as SamplePage;
            //        Detail = samplePage;
            //    }
            //}
            //else if (sampleList.Samples.Count > 1)
            {
                var listView = new ListView
                {
                    ItemsSource  = sampleList.Samples,
                    ItemTemplate = new DataTemplate(typeof(SampleListCell)),
                    RowHeight    = 45
                };
                var contentLayout = new StackLayout {
                    Children = { listView }
                };
                if (Device.OS == TargetPlatform.Windows && Device.Idiom == TargetIdiom.Phone)
                {
                    contentLayout.Padding = new Thickness(0, 0, 0, 60);
                }
                var master = new ContentPage {
                    Title = "Sample List", Content = contentLayout
                };

                Master      = master;
                Master.Icon = (Device.OS == TargetPlatform.Windows && Device.Idiom == TargetIdiom.Phone)? "Assets/Controls.png" : "Controls.png";
                Detail      = Activator.CreateInstance(Type.GetType(sampleList.Samples[0].Type)) as SamplePage;

                listView.ItemSelected += (sender, args) =>
                {
                    IsPresented = false;
                    if (listView.SelectedItem == null)
                    {
                        return;
                    }

                    var sampleDetails = args.SelectedItem as SampleDetails;

                    var type = Type.GetType(sampleDetails.Type);
                    if (type == null)
                    {
                        Detail = new EmptyContent();
                    }
                    else
                    {
                        var samplePage = Activator.CreateInstance(type) as SamplePage;
                        Detail = samplePage;
                    }
                    //listView.SelectedItem = null;
                };

                if (sampleList.Samples.Count > 0)
                {
                    listView.SelectedItem = sampleList.Samples[0];
                }
            }
        }
        public MasterSamplePageWP(MasterSample sampleList)
        {
            if (Device.OS == TargetPlatform.Windows && Device.Idiom == TargetIdiom.Phone)
                NavigationPage.SetHasNavigationBar(this, false);
            Title = Device.OS == TargetPlatform.Android ? "  " + sampleList.Title : sampleList.Title;

            //if (sampleList.Samples.Count == 1)
            //{
            //    var type = Type.GetType(sampleList.Samples[0].Type);
            //    if (type == null)
            //    {
            //        Detail = new EmptyContent();
            //    }
            //    else
            //    {
            //        var samplePage = Activator.CreateInstance(type) as SamplePage;
            //        Detail = samplePage;
            //    }
            //}
            //else if (sampleList.Samples.Count > 1)
            {
                var listView = new ListView
                {
                    ItemsSource = sampleList.Samples,
                    ItemTemplate = new DataTemplate(typeof (SampleListCell)),
                    RowHeight = 45
                };
                var contentLayout = new StackLayout { Children = { listView } };
                if (Device.OS == TargetPlatform.Windows && Device.Idiom == TargetIdiom.Phone)
                    contentLayout.Padding = new Thickness(0, 0, 0, 60);
                var master = new ContentPage {Title = "Sample List", Content = contentLayout };

                Master = master;
                Master.Icon = (Device.OS == TargetPlatform.Windows && Device.Idiom == TargetIdiom.Phone)? "Assets/Controls.png" : "Controls.png";
                Detail = Activator.CreateInstance(Type.GetType(sampleList.Samples[0].Type)) as SamplePage;

                listView.ItemSelected += (sender, args) =>
                {
                    IsPresented = false;
                    if (listView.SelectedItem == null) return;

                    var sampleDetails = args.SelectedItem as SampleDetails;

                    var type = Type.GetType(sampleDetails.Type);
                    if (type == null)
                    {
                        Detail = new EmptyContent();
                    }
                    else
                    {
                        var samplePage = Activator.CreateInstance(type) as SamplePage;
                        Detail = samplePage;
                    }
                    //listView.SelectedItem = null;
                };

                if (sampleList.Samples.Count > 0)
                {
                    listView.SelectedItem = sampleList.Samples[0];
                }
            }
        }