private static void FrameworkElementGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) { var frameworkElement = sender as FrameworkElement; if (frameworkElement != null) { if (popupCalControl == null) { popupCalControl = new CalendarPopupControl(); } popupCalControl.TargetTextBox = GetTargetTextBox(frameworkElement); popupCalControl.IsOpen = true; } }
private static void FrameworkElementLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) { var frameworkElement = sender as FrameworkElement; if (frameworkElement != null) { if (popupCalControl != null) { // Retrieves the setting for the State property SetState(frameworkElement, popupCalControl.State); popupCalControl.IsOpen = false; popupCalControl = null; } } }
private static void OnPlacementTargetChanged(DependencyObject element, DependencyPropertyChangedEventArgs e) { var frameworkElement = element as FrameworkElement; if (popupCalControl == null) { popupCalControl = new CalendarPopupControl(); } if ((frameworkElement != null) && (popupCalControl != null)) { popupCalControl.TargetTextBox = GetTargetTextBox(frameworkElement); frameworkElement.AddHandler(UIElement.GotKeyboardFocusEvent, new KeyboardFocusChangedEventHandler(FrameworkElementGotKeyboardFocus), true); frameworkElement.AddHandler(UIElement.LostKeyboardFocusEvent, new KeyboardFocusChangedEventHandler(FrameworkElementLostKeyboardFocus), true); } }