Control TestProperties() { var layout = new DynamicLayout(); DateTimePicker min, max, current, setValue; Button setButton; layout.AddRow(new Label { Text = "Min Value" }, min = new DateTimePicker()); layout.AddRow(new Label { Text = "Max Value" }, max = new DateTimePicker()); layout.BeginHorizontal(); layout.Add(new Label { Text = "Set to value" }); layout.BeginVertical(); layout.BeginHorizontal(); layout.AddAutoSized(setValue = new DateTimePicker()); layout.Add(setButton = new Button { Text = "Set" }); layout.EndHorizontal(); layout.EndVertical(); layout.EndHorizontal(); layout.AddRow(new Label { Text = "Value" }, current = new DateTimePicker()); min.ValueChanged += (sender, e) => current.MinDate = min.Value ?? DateTime.MinValue; max.ValueChanged += (sender, e) => current.MaxDate = max.Value ?? DateTime.MaxValue; setButton.Click += (sender, e) => current.Value = setValue.Value; LogEvents(current); return layout; }
Control TestProperties() { var layout = new DynamicLayout { DefaultSpacing = new Size(5, 5) }; DateTimePicker min, max, current, setValue; Button setButton; layout.AddRow("Min Value", min = new DateTimePicker()); layout.AddRow("Max Value", max = new DateTimePicker()); layout.BeginHorizontal(); layout.Add("Set to value"); layout.BeginVertical(Padding.Empty); layout.BeginHorizontal(); layout.AddAutoSized(setValue = new DateTimePicker()); layout.Add(setButton = new Button { Text = "Set" }); layout.EndHorizontal(); layout.EndVertical(); layout.EndHorizontal(); layout.AddRow("Value", current = new DateTimePicker()); min.ValueChanged += (sender, e) => current.MinDate = min.Value ?? DateTime.MinValue; max.ValueChanged += (sender, e) => current.MaxDate = max.Value ?? DateTime.MaxValue; setButton.Click += (sender, e) => current.Value = setValue.Value; LogEvents(current); return layout; }
Control TestProperties() { var min = new DateTimePicker(); var max = new DateTimePicker(); var setValue = new DateTimePicker(); var toValue = new DateTimePicker(); var modeSelect = new EnumRadioButtonList<CalendarMode>(); var current = new Calendar(); var setButton = new Button { Text = "Set" }; var toValueSection = new StackLayout { Orientation = Orientation.Horizontal, Visible = false, Spacing = 5, Items = { " to ", toValue } }; var layout = new TableLayout { Spacing = new Size(5, 5), Padding = new Padding(10), Rows = { new TableRow("Min Value", min), new TableRow("Max Value", max), new TableRow("Mode", modeSelect), new TableRow("Set to value", new StackLayout { Orientation = Orientation.Horizontal, Spacing = 5, Items = { setValue, toValueSection, setButton } } ), new TableRow("Value", TableLayout.AutoSized(current), null), null } }; modeSelect.SelectedValueBinding.Bind(() => current.Mode, v => { toValueSection.Visible = v == CalendarMode.Range; current.Mode = v; }); min.ValueChanged += (sender, e) => current.MinDate = min.Value ?? DateTime.MinValue; max.ValueChanged += (sender, e) => current.MaxDate = max.Value ?? DateTime.MaxValue; setButton.Click += (sender, e) => { if (current.Mode == CalendarMode.Range) current.SelectedRange = (setValue.Value != null && toValue.Value != null) ? new Range<DateTime>(setValue.Value.Value, toValue.Value.Value) : current.SelectedRange; else current.SelectedDate = setValue.Value ?? current.SelectedDate; }; LogEvents(current); return layout; }
Control TestProperties() { var min = new DateTimePicker(); var max = new DateTimePicker(); var setValue = new DateTimePicker(); var toValue = new DateTimePicker(); var modeSelect = new EnumRadioButtonList<CalendarMode>(); var current = new Calendar(); var setButton = new Button { Text = "Set" }; TableLayout toValueSection; var layout = new TableLayout( new TableRow(new Label { Text = "Min Value" }, min), new TableRow(new Label { Text = "Max Value" }, max), new TableRow(new Label { Text = "Mode" }, modeSelect), new TableRow(new Label { Text = "Set to value" }, new TableLayout(new TableRow(setValue, toValueSection = new TableLayout(new TableRow(new Label { Text = " to " }, toValue)) { Visible = false, Padding = Padding.Empty }, setButton )) { Padding = Padding.Empty } ), new TableRow(new Label { Text = "Value" }, TableLayout.AutoSized(current), null), null ); modeSelect.SelectedValueBinding.Bind(() => current.Mode, v => { toValueSection.Visible = v == CalendarMode.Range; current.Mode = v; }); min.ValueChanged += (sender, e) => current.MinDate = min.Value ?? DateTime.MinValue; max.ValueChanged += (sender, e) => current.MaxDate = max.Value ?? DateTime.MaxValue; setButton.Click += (sender, e) => { if (current.Mode == CalendarMode.Range) current.SelectedRange = (setValue.Value != null && toValue.Value != null) ? new Range<DateTime>(setValue.Value.Value, toValue.Value.Value) : current.SelectedRange; else current.SelectedDate = setValue.Value ?? current.SelectedDate; }; LogEvents(current); return layout; }
public DynamicFocusSection() { var content = new Panel(); var focusControlCheckBox = new CheckBox { Text = "Focus Control", Checked = true }; var addContentButton = new Button { Text = "Add Control" }; var count = 0; addContentButton.Click += (sender, e) => { Control control; switch((count++) % 9) { case 0: control = new TextBox(); break; case 1: control = new TextArea(); break; case 2: control = new CheckBox { Text = "A Check Box" }; break; case 3: control = new RadioButton { Text = "A Radio Button" }; break; case 4: control = new DropDown { Items = { "Item 1", "Item 2", "Item 3" } }; break; case 5: control = new DateTimePicker(); break; case 6: control = new ColorPicker(); break; case 7: control = new PasswordBox(); break; case 8: control = new ListBox { Items = { "Item 1", "Item 2", "Item 3" } }; break; case 9: control = new PasswordBox(); break; default: throw new InvalidOperationException(); } if (focusControlCheckBox.Checked ?? false) control.Focus(); content.Content = new TableLayout( null, new Label { Text = string.Format("Control: {0}", control.GetType().Name) }, new TableRow(control), null ); }; Content = new TableLayout( new TableLayout(new TableRow(null, addContentButton, focusControlCheckBox, null)), content ); }
void LogEvents (DateTimePicker control) { control.ValueChanged += delegate { Log.Write (control, "ValueChanged, Value: {0}", control.Value); }; }
DateTimePicker DateTimeControl () { var control = new DateTimePicker{ Mode = DateTimePickerMode.DateTime }; LogEvents (control); return control; }
DateTimePicker Default () { var control = new DateTimePicker{ }; LogEvents (control); return control; }
Control DateTimeControl() { var control = new DateTimePicker(); LogEvents(control); return control; }
/// <summary> /// Raises the value changed event. /// </summary> public void OnValueChanged(DateTimePicker widget, EventArgs e) { widget.Platform.Invoke(() => widget.OnValueChanged(e)); }