Exemplo n.º 1
0
        private static void ApplyDateFormat(System.Windows.Controls.DatePicker datePicker)
        {
            var binding = new Binding("SelectedDate")
            {
                RelativeSource = new RelativeSource {
                    AncestorType = typeof(System.Windows.Controls.DatePicker)
                },
                Converter          = new DatePickerDateTimeConverter(),
                ConverterParameter = new Tuple <System.Windows.Controls.DatePicker, string>(datePicker, GetDateFormat(datePicker)),
                StringFormat       = GetDateFormat(datePicker) // This is also new but didnt seem to help
            };

            var textBox = GetTemplateTextBox(datePicker);

            textBox.SetBinding(TextBox.TextProperty, binding);

            textBox.PreviewKeyDown -= TextBoxOnPreviewKeyDown;
            textBox.PreviewKeyDown += TextBoxOnPreviewKeyDown;

            var dropDownButton = GetTemplateButton(datePicker);

            datePicker.CalendarOpened -= DatePickerOnCalendarOpened;
            datePicker.CalendarOpened += DatePickerOnCalendarOpened;

            // Handle Dropdownbutton PreviewMouseUp to prevent issue of flickering textboxes
            dropDownButton.PreviewMouseUp -= DropDownButtonPreviewMouseUp;
            dropDownButton.PreviewMouseUp += DropDownButtonPreviewMouseUp;
        }
Exemplo n.º 2
0
            public static DateTime?StringToDateTime(System.Windows.Controls.DatePicker datePicker, string formatStr, string dateStr)
            {
                DateTime date;
                var      canParse = DateTime.TryParseExact(dateStr, formatStr, CultureInfo.CurrentCulture,
                                                           DateTimeStyles.None, out date);

                if (!canParse)
                {
                    canParse = DateTime.TryParse(dateStr, CultureInfo.CurrentCulture, DateTimeStyles.None, out date);
                }

                return(canParse ? date : datePicker.SelectedDate);
            }
Exemplo n.º 3
0
        private static void SetCalendarEventHandlers(System.Windows.Controls.DatePicker datePicker, DependencyPropertyChangedEventArgs e)
        {
            if (e.NewValue == e.OldValue)
            {
                return;
            }

            if ((bool)e.NewValue)
            {
                datePicker.CalendarOpened += DatePickerOnCalendarOpened;
                datePicker.CalendarClosed += DatePickerOnCalendarClosed;
            }
            else
            {
                datePicker.CalendarOpened -= DatePickerOnCalendarOpened;
                datePicker.CalendarClosed -= DatePickerOnCalendarClosed;
            }
        }
Exemplo n.º 4
0
 private static ButtonBase GetTemplateButton(System.Windows.Controls.DatePicker datePicker)
 {
     return((ButtonBase)datePicker.Template.FindName("PART_Button", datePicker));
 }