Вы можете добавить обработчик к событию Closing
и отменить, если установлены соответствующие модификаторы, отметив Keyboard.Modifiers
, и отменить при необходимости. Возможно, вам придется добавить логику, чтобы проверить, нажала ли мышь кнопку закрытия, если хотите.
private void Window_Closing(object sender, CancelEventArgs e)
{
if (Keyboard.Modifiers == ModifierKeys.Shift) return; //exit if shift pressed
//cancel by default
e.Cancel = true;
}