protected override void OnIsKeyboardFocusWithinChanged(DependencyPropertyChangedEventArgs e)
{
// If IsKeyboardFocusWithin has become true, then do not
// call base.OnIsKeyboardFocusWithinChanged right away.
// Defer the bases call until DropDown gets opened or
// one of the descendants get focus.
if (!IsKeyboardFocusWithin)
{
PseudoIsKeyboardFocusWithin = false;
base.OnIsKeyboardFocusWithinChanged(e);
}
}