Частичное решение может заключаться в том, чтобы ваш «диалоговый» элемент управления покрывал все окно вашего приложения, но иметь большую его часть прозрачным, с непрозрачным содержимым диалога в середине, например:
+----------------+
| |
| Transparent |
| |
| +----------+ |
| | dialog | |
| | content | |
| +----------+ |
| |
+----------------+
Но это что-то вроде хака.
Чтобы напрямую ответить на ваш вопрос, вы можете использовать Trigger для свойства IsEnabled в ваших элементах управления, чтобы не менять цвета. Возможно, кто-то с Visual Studio на своем поле может предоставить пример кода. :)
Ответ на ваш комментарий:
Я волнуюсь, что этот ответ становится немного сложным, но вы можете установить свойства IsTabStop и Focusable в false на ваших элементах управления, чтобы получить такое поведение.