也许我有Post-Ballmer-Peak Moment。 我希望有人可以帮我指出那些显而易见的事情。
为什么此代码会在右键单击时生成上下文菜单:
<Canvas Background="Transparent">
<Canvas.ContextMenu>
<ContextMenu>
<TextBlock>WTF?</TextBlock>
</ContextMenu>
</Canvas.ContextMenu>
</Canvas>
此代码不会生成上下文菜单:
<Canvas>
<Canvas.ContextMenu>
<ContextMenu>
<TextBlock>WTF?</TextBlock>
</ContextMenu>
</Canvas.ContextMenu>
</Canvas>
答案 0 :(得分:17)
这是因为Transparent
画笔允许一个区域可以被击中,从而接收并响应鼠标点击,而默认的null
画笔则没有。换句话说,如果没有定义任何画笔,该区域将变为“空心”并且点击通过;使用画笔定义(甚至是透明画笔),它们是“可靠的”并且可以接收点击。
有关详情,请参阅 WPF brushes 上的这篇有用的文章。