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 に答える