static void OnTimeChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { TimePromptControl control = obj as TimePromptControl; control.Hours = Math.Min(Math.Max(control.MinHours, control.Hours), control.MaxHours); control.Minutes = Math.Min(Math.Max(0, control.Minutes), 59); control.Value = new TimeSpan(control.Use24HourClock || control.DesignatorIndex == 0 ? control.Hours : control.Hours + 12, control.Minutes, 0); }
static void OnValueChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { TimePromptControl control = obj as TimePromptControl; control.Hours = control.Use24HourClock || ((TimeSpan)e.NewValue).Hours <= 12 ? ((TimeSpan)e.NewValue).Hours : ((TimeSpan)e.NewValue).Hours - 12; control.Minutes = ((TimeSpan)e.NewValue).Minutes; control.DesignatorIndex = ((TimeSpan)e.NewValue).Hours > 12 ? 1 : 0; }
public override IDisposable TimePrompt(TimePromptConfig config) { Dispatch(() => { var timePromptControl = new TimePromptControl() { Use24HourClock = config.Use24HourClock ?? false, Value = config.SelectedTime ?? TimeSpan.Zero }; FormsContentDialog dialog = new FormsContentDialog() { DataContext = config, Title = config.Title, Content = timePromptControl, IsPrimaryButtonEnabled = true, PrimaryButtonText = config.OkText, IsSecondaryButtonEnabled = true, SecondaryButtonText = config.CancelText }; dialog.PrimaryButtonClick += (s, e) => { HideContentDialog(); config.OnAction(new TimePromptResult(true, timePromptControl.Value)); e.Cancel = true; }; dialog.SecondaryButtonClick += (s, e) => { HideContentDialog(); config.OnAction(new TimePromptResult(false, timePromptControl.Value)); e.Cancel = true; }; ShowContentDialog(dialog); }); return(new DisposableAction(HideContentDialog)); }