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;
        }
Пример #3
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));
 }