示例#1
0
        void AddGrid()
        {
            Grid grid  = new Grid();
            int  index = 0;

            #region OneByOne
            {
                var label = new Label
                {
                    Text = "One By One",
                    HorizontalOptions = LayoutOptions.Center
                };
                var linkedSwitch = new LinkedSwitch(Types.OneByOne.ToString());
                linkedSwitch.HorizontalOptions = LayoutOptions.Center;
                grid.Children.Add(label, (int)Side.Left, index);
                grid.Children.Add(linkedSwitch, (int)Side.Right, index++);
            }
            #endregion
            #region TwoByOne
            {
                var label1 = new Label
                {
                    Text = "Two By One",
                    HorizontalOptions = LayoutOptions.Center
                };
                var linkedSwitch1 = new LinkedSwitch(Types.TwoByOne.ToString());
                linkedSwitch1.HorizontalOptions = LayoutOptions.Center;
                grid.Children.Add(label1, (int)Side.Left, index);
                grid.Children.Add(linkedSwitch1, (int)Side.Right, index++);
            }
            #endregion
            #region ThreeByOne
            {
                var label2 = new Label
                {
                    Text = "Three By One",
                    HorizontalOptions = LayoutOptions.Center
                };
                var linkedSwitch2 = new LinkedSwitch(Types.ThreeByOne.ToString());
                linkedSwitch2.HorizontalOptions = LayoutOptions.Center;
                grid.Children.Add(label2, (int)Side.Left, index);
                grid.Children.Add(linkedSwitch2, (int)Side.Right, index++);
            }
            #endregion
            #region Factors
            {
                var label3 = new Label
                {
                    Text = "Factors",
                    HorizontalOptions = LayoutOptions.Center
                };
                var linkedSwitch3 = new LinkedSwitch(Types.Factored.ToString());
                linkedSwitch3.HorizontalOptions = LayoutOptions.Center;
                grid.Children.Add(label3, (int)Side.Left, index);
                grid.Children.Add(linkedSwitch3, (int)Side.Right, index++);
            }
            #endregion
            #region MaxProblems
            {
                var label4 = new Label
                {
                    Text = $"Max Problems: {Settings.MaxProblems}",
                    HorizontalOptions = LayoutOptions.CenterAndExpand
                };
                var stepper = new LinkedStepper(nameof(Settings.MaxProblems), 5, 1, 100);
                stepper.ValueChanged += delegate(object sender, ValueChangedEventArgs e)
                {
                    label4.Text = $"Max Problems: {Settings.MaxProblems}";
                };
                stepper.HorizontalOptions = LayoutOptions.CenterAndExpand;
                grid.Children.Add(label4, (int)Side.Left, index);
                grid.Children.Add(stepper, (int)Side.Right, index++);
            }
            #endregion
            layout.Children.Insert(2, grid);
        }
示例#2
0
        public SettingsPage()
        {
            InitializeComponent();
            ScrollView scroll = new ScrollView();

            Grid        grid         = new Grid();
            StackLayout stack        = new StackLayout();
            Button      returnButton = new Button()
            {
                Text = "Return"
            };

            returnButton.Clicked += ReturnButtonClicked;

            int offset = 0;

            stack.Children.Add(returnButton);

            //grid.Children.Insert(0, returnButton);
            //grid.Children.AddHorizontal(returnButton);

            #region Sound Switch
            {
                var soundLabel = new Label()
                {
                    Text = "Play Sounds"
                };

                var soundSwitch = new LinkedSwitch(nameof(Settings.ShouldPlaySound));

                grid.Children.Add(soundLabel, (int)Side.Left, offset);
                grid.Children.Add(soundSwitch, (int)Side.Right, offset++);
            }
            #endregion
            #region Old Problems Percentage
            {
                // Creates a label and a linked slider to the old problems percentage.
                // When the slider changes we update the label text
                var dropOffLabel = new Label()
                {
                    Text = $"Old Problems Percentage: {Settings.RepeatProblemDropOff * 100.0}"
                };
                var dropOffSlider = new LinkedSlider(nameof(Settings.RepeatProblemDropOff), 0.9, -1.0, 1.0);
                dropOffSlider.Margin        = new Thickness(0.0, 0.0, 5.0, 0.0);
                dropOffSlider.ValueChanged += delegate(object sender, ValueChangedEventArgs e)
                {
                    dropOffLabel.Text = $"Old Problems Percentage: {Settings.RepeatProblemDropOff * 100.0}";
                };

                grid.Children.Add(dropOffLabel, (int)Side.Left, offset);
                grid.Children.Add(dropOffSlider, (int)Side.Right, offset++);
            }
            #endregion
            #region Old Problems Drop Off
            {
                // Creates a label and a linked slider to the Old Problems Drop Off
                // When the slider changes we update the label text
                var label = new Label()
                {
                    Text = $"Old Problems Minimum: {Settings.RepeatProblemMinimum} problems"
                };
                var slider = new LinkedStepper(nameof(Settings.RepeatProblemMinimum), 15, 1, 25);
                slider.Margin        = new Thickness(0.0, 0.0, 5.0, 0.0);
                slider.ValueChanged += delegate(object sender, ValueChangedEventArgs e)
                {
                    label.Text = $"Old Problems Minimum: {Settings.RepeatProblemMinimum} problems";
                };

                grid.Children.Add(label, (int)Side.Left, offset);
                grid.Children.Add(slider, (int)Side.Right, offset++);
            }
            #endregion

            for (Types type = 0; type < Types.Size; type++)
            {
                Label label = new Label()
                {
                    FontSize          = 16,
                    Text              = Model.TypeConverter.ToString(type),
                    HorizontalOptions = LayoutOptions.End,
                };

                LinkedSwitch Switch = new LinkedSwitch(type.ToString());
                Switch.HorizontalOptions = LayoutOptions.Center;

                grid.Children.Add(label, (int)Side.Left, (int)type + offset);
                grid.Children.Add(Switch, (int)Side.Right, (int)type + offset);
            }

            stack.Children.Add(grid);
            scroll.Content = stack;
            this.Content   = scroll;
        }