Я хочу попробовать что-то другое, и я пытаюсь отобразить наложение поверх моего текущего WPF GUI, которое позволяет пользователю по-прежнему взаимодействовать с GUI, но предоставляет уровень раздражения, чтобы сообщить им, что что-то не так.
Мой вопрос действительно состоит из двух отдельных вопросов:
1.Как бы вы сделали наложение?
Моя первая попытка состояла в том, чтобы использовать прямоугольник, установить заливку на соответствующий цвет, а затем изменить непрозрачность.Но это не прозрачно для переходов по ссылкам.Таким образом, я думаю, что я хочу сделать, в соответствии с результатами поиска, создать отдельное окно, установить его фон для прозрачного, а затем установить для параметра AllowsTransparency значение True.Хотя это работает, если я хочу сделать что-то вроде Background="DarkRed" Opacity="0.2"
, клики больше не работают .
И это приводит меня ко второй части:
2.Как правильно изменить размер этой области наложения, если я использую MVVM?
Мое главное окно создает ViewModel, которая создает модель.Модель - это единственная вещь, которая знает, следует ли отображать оверлей.Но главное окно, очевидно, является единственной вещью, которая знает его размер, и Модель никогда не знает ничего выше него.Является ли единственный способ добиться этого, привязав размер оверлейного окна к свойствам в ViewModel, и затем ViewModel устанавливает эти значения каждый раз, когда изменяется размер главного окна?из этих вещей?