private void HandlePreProcessInput(object sender, PreProcessInputEventArgs e)
{
this.OnPropertyChanged("CurrentFocus");
ModifierKeys currentModifiers = InputManager.Current.PrimaryKeyboardDevice.Modifiers;
if (!((currentModifiers & ModifierKeys.Control) != 0 && (currentModifiers & ModifierKeys.Shift) != 0))
return;
Visual directlyOver = Mouse.PrimaryDevice.DirectlyOver as Visual;
if ((directlyOver == null) || directlyOver.IsDescendantOf(this))
return;
VisualTreeItem node = this.FindItem(directlyOver);
if (node != null)
this.CurrentSelection = node;
}