//
        // OnApplyTemplate
        //

        /// <summary>
        /// Called when ApplyTemplate is called.
        /// </summary>
        public override void OnApplyTemplate()
        {
            PreOnApplyTemplate();
            base.OnApplyTemplate();
            this.dropDown       = WpfHelp.GetTemplateChild <DismissiblePopup>(this, "PART_DropDown");
            this.dropDownButton = WpfHelp.GetTemplateChild <ToggleButton>(this, "PART_DropDownButton");
            PostOnApplyTemplate();
        }
        static private void CloseOnEscapeProperty_PropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
        {
            DismissiblePopup obj = (DismissiblePopup)o;

            obj.OnCloseOnEscapeChanged(new PropertyChangedEventArgs <bool>((bool)e.OldValue, (bool)e.NewValue));
        }
        static private void SetFocusOnCloseElementProperty_PropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
        {
            DismissiblePopup obj = (DismissiblePopup)o;

            obj.OnSetFocusOnCloseElementChanged(new PropertyChangedEventArgs <UIElement>((UIElement)e.OldValue, (UIElement)e.NewValue));
        }
        static private void DismissPopupCommand_CommandExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            DismissiblePopup obj = (DismissiblePopup)sender;

            obj.OnDismissPopupExecuted(e);
        }
        static private void FocusChildOnOpenProperty_PropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
        {
            DismissiblePopup obj = (DismissiblePopup)o;

            obj.OnFocusChildOnOpenChanged(new PropertyChangedEventArgs <bool>((bool)e.OldValue, (bool)e.NewValue));
        }