7

也许我正在经历一个后鲍尔默高峰时刻。我希望有人可以帮助指出对我来说显而易见的事情。

为什么此代码在右键单击时生成上下文菜单:

<Canvas Background="Transparent">
  <Canvas.ContextMenu>
    <ContextMenu>
      <TextBlock>WTF?</TextBlock>
    </ContextMenu>
  </Canvas.ContextMenu>
</Canvas>

并且此代码不会生成上下文菜单:

<Canvas>
  <Canvas.ContextMenu>
    <ContextMenu>
      <TextBlock>WTF?</TextBlock>
    </ContextMenu>
  </Canvas.ContextMenu>
</Canvas>
4

1 回答 1

17

这是因为Transparent画笔允许一个区域是可点击的,因此可以接收和响应鼠标点击,而默认null画笔不允许。换句话说,在没有定义任何画笔的情况下,该区域将变为“空心”并且点击通过;使用定义的画笔(甚至是透明的画笔),它们是“实心的”并且可以接收到点击。

有关更多信息,请参阅这篇关于WPF 画笔的有用文章。

于 2009-05-16T03:45:02.697 回答