Все приложение wpf блокируется после того, как я вызываю Show() для нового окна

Я разрабатываю WPF-приложение с использованием шаблона mvvm. И странная проблема произошла со мной. Существует форма, которая содержит элемент devexpress DXGrid. В презентере есть команда для двойного щелчка мышью. Когда команда запускается, новое окно создается и показывается через фабричный класс (используется метод Show()).

Таким образом, время от времени случается, что все приложение (все окна приложения) блокируется, когда отображается это окно. Эта блокировка исчезает после того, как я фокусирую любое другое приложение.

Впервые эта проблема возникла после обновления версии devexpress. Затем эта проблема возникала каждый раз, когда после двойного щелчка по строке сетки отображалось новое окно. Проблема была частично исправлена ​​установкой свойства Owner в новом окне.

Теперь эта проблема возникает время от времени. Кажется, что темы вовлечены здесь, но я не понимаю, как. знак равно

PS: есть еще одна странная вещь, когда отображается новое окно и не возникает проблема блокировки, первое окно все еще находится в фокусе, и мне нужно щелкнуть новое окно, прежде чем я смогу использовать какие-либо элементы управления, размещенные на нем.

Я пытался:

  • установить свойство ShowActivation
  • вызовите Activate() после Show()
  • newform.Dispatcher.CheckAccess () для
    определить, какой поток вызывает Show()
    метод
  • проверять свойство newform.IsActive после show (value = true)

Не могли бы вы сказать мне, как исправить, пожалуйста? Спасибо.

1 ответ

Чтобы решить проблему с фокусировкой первого окна, а не вновь отображаемого окна, вам нужно сделать следующее после вызова метода show для нового окна:

Mouse.Capture(null);

Надеюсь, проблема будет решена.

Другие вопросы по тегам