Почему этот код WPF не создает контекстное меню?
Возможно, у меня момент после пика Баллмера. Я надеюсь, что кто-то может помочь указать на очевидное для меня.
Почему этот код генерирует контекстное меню при щелчке правой кнопкой мыши:
<Canvas Background="Transparent">
<Canvas.ContextMenu>
<ContextMenu>
<TextBlock>WTF?</TextBlock>
</ContextMenu>
</Canvas.ContextMenu>
</Canvas>
И этот код не генерирует контекстное меню:
<Canvas>
<Canvas.ContextMenu>
<ContextMenu>
<TextBlock>WTF?</TextBlock>
</ContextMenu>
</Canvas.ContextMenu>
</Canvas>
1 ответ
Решение
Это потому что Transparent
кисть позволяет области быть хитой и, таким образом, получать и реагировать на щелчки мыши, тогда как по умолчанию null
кисть не Другими словами, без какой-либо определенной кисти область становится "полой", и щелчки проходят; с определенной кистью (даже прозрачной) они "сплошные", и можно получить клики.
Смотрите эту полезную статью о кистях WPF для получения дополнительной информации.