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); }
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; }