Example #1
0
        public ToolbarItems()
        {
            var label = new Label {
                Text = "Hello ContentPage", AutomationId = "label_id"
            };

            var command = new Command((obj) =>
            {
                label.Text = "button 4 new text";
            }, (obj) => _isEnable);
            var tb1 = new ToolbarItem("tb1", "menuIcon.png", () =>
            {
                label.Text = "tb1";
            }, ToolbarItemOrder.Primary);

            tb1.IsEnabled    = _isEnable;
            tb1.AutomationId = "toolbaritem_primary";

            var tb2 = new ToolbarItem("tb2", null, () =>
            {
                label.Text = "tb2";
            }, ToolbarItemOrder.Primary);

            tb2.AutomationId = "toolbaritem_primary2";
            var tb6 = new ToolbarItem("tb6 long long text", null, () =>
            {
                label.Text = "tb6";
            }, ToolbarItemOrder.Primary);

            tb6.AutomationId = "toolbaritem_primary6";

            var tb3 = new ToolbarItem("tb3", "bank.png", () =>
            {
                label.Text = "tb3";
                _isEnable  = !_isEnable;
                command.ChangeCanExecute();
            }, ToolbarItemOrder.Secondary);

            tb3.AutomationId = "toolbaritem_secondary";

            var tb4 = new ToolbarItem();

            tb4.Text            = "tb4";
            tb4.Order           = ToolbarItemOrder.Secondary;
            tb4.Command         = command;
            tb4.IconImageSource = "coffee";
            tb4.AutomationId    = "toolbaritem_secondary2";

            var tb5 = new ToolbarItem();

            tb5.Text            = "tb5";
            tb5.IconImageSource = "bank.png";
            tb5.Order           = ToolbarItemOrder.Secondary;
            tb5.Command         = new Command(async() => {
                await Navigation.PushAsync(new ToolbarItems());
            });
            tb5.AutomationId = "toolbaritem_secondary5";

            ToolbarItems.Add(tb1);
            ToolbarItems.Add(tb2);
            ToolbarItems.Add(tb3);
            ToolbarItems.Add(tb4);
            ToolbarItems.Add(tb5);
            ToolbarItems.Add(tb6);

            Content = new StackLayout
            {
                Children =
                {
                    label
                }
            };
        }
Example #2
0
        public NavigationBarGallery(NavigationPage rootNavPage)
        {
            _rootNavPage = rootNavPage;

            int toggleBarTextColor       = 0;
            int toggleBarBackgroundColor = 0;

            ToolbarItems.Add(new ToolbarItem {
                Text = "Save"
            });

            NavigationPage.SetTitleIconImageSource(this, "coffee.png");

            SearchBar searchBar = new SearchBar {
                HeightRequest = 44, WidthRequest = 100
            };

            // Note: Large and complex controls, such as ListView and TableView, are not recommended.
            var controls = new List <View>
            {
                searchBar,
                new ActivityIndicator {
                    IsRunning = true
                },
                new BoxView {
                    BackgroundColor = Color.Red
                },
                new Button {
                    Text = "Button!"
                },
                new DatePicker {
                },
                new Editor {
                    Text = "Editor"
                },
                new Entry {
                    Placeholder = "Entry"
                },
                new Image {
                    Source = "crimson.jpg", HeightRequest = 44
                },
                new Label {
                    Text = "Title View Label!"
                },
                new Picker {
                    ItemsSource = Enumerable.Range(0, 10).Select(i => $"Item {i}").ToList(), Title = "Picker"
                },
                new ProgressBar {
                    Progress = 50
                },
                new Slider {
                },
                new Stepper {
                },
                new Switch {
                },
                new TimePicker {
                }
            };

            int idx = 0;

            NavigationPage.SetTitleView(this, CreateTitleView(controls[idx]));

            rootNavPage.On <Android>().SetBarHeight(450);
            rootNavPage.On <iOS>().SetPrefersLargeTitles(false);

            Content = new ScrollView
            {
                Content =
                    new StackLayout
                {
                    Children =
                    {
                        new Button                                   {
                            Text    = "Go to SearchBarTitlePage",
                            Command = new Command(() =>              {
                                rootNavPage.PushAsync(new SearchBarTitlePage(rootNavPage));
                            })
                        },
                        new Button                                   {
                            Text    = "Change BarTextColor",
                            Command = new Command(() =>              {
                                if (toggleBarTextColor % 2 == 0)
                                {
                                    rootNavPage.BarTextColor = Color.Teal;
                                }
                                else
                                {
                                    rootNavPage.BarTextColor = Color.Default;
                                }
                                toggleBarTextColor++;
                            })
                        },
                        new Button                                   {
                            Text    = "Change BarBackgroundColor",
                            Command = new Command(() =>              {
                                if (toggleBarBackgroundColor % 2 == 0)
                                {
                                    rootNavPage.BarBackgroundColor = Color.Navy;
                                }
                                else
                                {
                                    rootNavPage.BarBackgroundColor = Color.Default;
                                }
                                toggleBarBackgroundColor++;
                            })
                        },
                        new Button                                   {
                            Text    = "Change Both to default",
                            Command = new Command(() =>              {
                                rootNavPage.BarTextColor       = Color.Default;
                                rootNavPage.BarBackgroundColor = Color.Default;
                            })
                        },
                        new Button                                   {
                            Text    = "Black background, white text",
                            Command = new Command(() =>              {
                                rootNavPage.BarTextColor       = Color.White;
                                rootNavPage.BarBackgroundColor = Color.Black;
                            })
                        },
                        new Button                                   {
                            Text    = "Toggle TitleIcon",
                            Command = new Command(() =>              {
                                var titleIcon = NavigationPage.GetTitleIconImageSource(this);

                                if (titleIcon == null)
                                {
                                    titleIcon = "coffee.png";
                                }
                                else
                                {
                                    titleIcon = null;
                                }

                                NavigationPage.SetTitleIconImageSource(this, titleIcon);
                            })
                        },
                        new Button                                   {
                            Text    = "Toggle TitleView",
                            Command = new Command(() =>              {
                                var titleView = NavigationPage.GetTitleView(this);

                                if (titleView == null)
                                {
                                    titleView = CreateTitleView(controls[idx]);
                                }
                                else
                                {
                                    titleView = null;
                                }

                                NavigationPage.SetTitleView(this, titleView);
                            })
                        },
                        new Button                                   {
                            Text    = "Next TitleView",
                            Command = new Command(() =>              {
                                idx++;
                                if (idx >= controls.Count)
                                {
                                    idx = 0;
                                }

                                var titleView = CreateTitleView(controls[idx]);

                                NavigationPage.SetTitleView(this, titleView);
                            })
                        },
                        new Button                                   {
                            Text    = "Toggle Back Title",
                            Command = new Command(() =>              {
                                var backTitle = NavigationPage.GetBackButtonTitle(rootNavPage);

                                if (backTitle == null)
                                {
                                    backTitle = "Go back home";
                                }
                                else
                                {
                                    backTitle = null;
                                }

                                NavigationPage.SetBackButtonTitle(rootNavPage, backTitle);
                            })
                        },
                        new Button                                   {
                            Text    = "Toggle Toolbar Item",
                            Command = new Command(() =>              {
                                if (ToolbarItems.Count > 0)
                                {
                                    ToolbarItems.Clear();
                                }
                                else
                                {
                                    ToolbarItems.Add(new ToolbarItem {
                                        Text = "Save"
                                    });
                                }
                            })
                        },
                        new Button                                   {
                            Text    = "Toggle Title",
                            Command = new Command(() =>              {
                                if (Title == null)
                                {
                                    Title = "NavigationBar Gallery - Legacy";
                                }
                                else
                                {
                                    Title = null;
                                }
                            })
                        },
                        new Button                                   {
                            Text    = "Toggle BarHeight",
                            Command = new Command(() =>              {
                                if (rootNavPage.On <Android>().GetBarHeight() == -1)
                                {
                                    rootNavPage.On <Android>().SetBarHeight(450);
                                }
                                else
                                {
                                    rootNavPage.ClearValue(BarHeightProperty);
                                }
                            })
                        }
                    }
                }
            };
        }
Example #3
0
        public FontImageSourceGallery()
        {
            var grid = new Grid
            {
                HeightRequest   = 1696,
                WidthRequest    = 320,
                BackgroundColor = Color.Black
            };

            grid.AddRowDef(count: 53);
            grid.AddColumnDef(count: 10);

            var fontFamily = "";

            switch (Device.RuntimePlatform)
            {
            case Device.macOS:
            case Device.iOS:
                fontFamily = "Ionicons";
                break;

            case Device.UWP:
                fontFamily = "Assets/Fonts/ionicons.ttf#ionicons";
                break;

            case Device.WPF:
            case Device.GTK:
                fontFamily = "Assets/ionicons.ttf#ionicons";
                break;

            case Device.Android:
            default:
                fontFamily = "fonts/ionicons.ttf#";
                break;
            }

            grid.Children.Add(new ImageButton
            {
                Source = new FontImageSource
                {
                    Glyph      = Ionicons[Ionicons.Length - 1].ToString(),
                    FontFamily = fontFamily,
                    Size       = 20
                },
            });

            var i = 1;

            foreach (char c in Ionicons)
            {
                grid.Children.Add(new Image
                {
                    Source = new FontImageSource
                    {
                        Glyph      = c.ToString(),
                        FontFamily = fontFamily,
                        Size       = 20
                    },
                    BackgroundColor   = Color.Black,
                    VerticalOptions   = LayoutOptions.Center,
                    HorizontalOptions = LayoutOptions.Center,
                }, i % 10, i / 10);
                i++;
            }
            Content = new ScrollView
            {
                VerticalOptions   = LayoutOptions.FillAndExpand,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Content           = grid
            };

            var tb1 = new ToolbarItem()
            {
                Text            = "tb1",
                IconImageSource = new FontImageSource()
                {
                    FontFamily = fontFamily,
                    Glyph      = '\uf101'.ToString()
                }
            };
            var tb2 = new ToolbarItem
            {
                Text            = "tb2 red",
                IconImageSource = new FontImageSource()
                {
                    FontFamily = fontFamily,
                    Glyph      = '\uf101'.ToString(),
                    Color      = Color.Red
                },
            };
            var tb3 = new ToolbarItem
            {
                Text            = "tb3 yellow",
                IconImageSource = new FontImageSource()
                {
                    FontFamily = fontFamily,
                    Glyph      = '\uf2c7'.ToString(),
                    Color      = Color.Yellow
                },
            };

            ToolbarItems.Add(tb1);
            ToolbarItems.Add(tb2);
            ToolbarItems.Add(tb3);
        }