Это происходит из-за промежуточного стека взаимодействия Windows, который WindowsFormsHost создает для изменения технологии Windows Messages for Windows Forms.
Он основан на почти стандартном NativeWindow классе, и, к сожалению, этокласс просто ест исключение по умолчанию.Вы можете взглянуть на это, используя Reflector или любой другой инструмент для проверки IL.Сердцем этого класса является этот метод:
private IntPtr Callback(IntPtr hWnd, int msg, IntPtr wparam, IntPtr lparam)
{
try
{
// process message
}
catch (Exception exception)
{
this.OnThreadException(exception);
}
...
}
По умолчанию метод OnThreadException является ... пустым.Теоретически вы можете создать класс, производный от WindowsFormsHost, особенно метод BuildWindowCore .Я пытался сделать это, но это не работает, так как реализация WindowsFormsHost использует много приватных штук ....