Я создаю приложение WPF, содержащее «Main-Content» - слой, содержащий TabControl, и «Dialog» - слой, содержащий ItemsControl.
XAML выглядит так:
<Grid>
<TabControl>
..Some Tabs
</TabControl>
<ItemsControl>
<ContentControl Content={Binding Dialog1Property} />
<ContentControl Content={Binding Dialog2Property} />
</ItemsControl>
</Grid>
Обычно "Dialog1Property" и "Dialog2Property" имеют значение null, что означает, что ItemsControl невидим. Всякий раз, когда я назначаю элемент управления одному из них, он отображается перед TabControl, и это именно то, что мне нужно. Если я назначу серый прямоугольник с непрозрачностью 0,7 одному из свойств диалогового окна, он создаст серый наложение.
Если я нажимаю на вкладку, которая слегка видна через наложение, ничего не происходит - прямоугольник блокирует события мыши. Однако все еще возможно сфокусировать TabControl за оверлеем, используя клавишу Tab, и, следовательно, также возможно переключать вкладки, даже если отображается диалог.
Есть ли простой способ указать прямоугольнику каким-либо образом блокировать ключевые события, как это уже делается с помощью мышиных кликов?
С уважением
BBRain