yoshikazuendo
3/16/2017 - 2:25 PM

【WPF】親要素に含まれる子要素だけコンテキストメニューを出さないようにするには

【WPF】親要素に含まれる子要素だけコンテキストメニューを出さないようにするには

<!-- ItemsControlのネストがされており、かつその親要素はコンテキを出したいけど、-->
<!-- 子要素では出したくない、などがあると思います。-->

<!-- 参考サイト:https://teratail.com/questions/32480 -->

<!-- 案1:子要素から出す-->
<!-- 案2:MouseRightButtonUpでHandledを殺してルーディングされないようにする。-->
<!-- 案3:子要素に空のContextMenuを入れる。格好悪いけど、割とこれが一番簡単かも。 -->
<StackPanel IsItemsHost="True" Orientation="Horizontal">
    <!-- ネストしている子要素と想定して、ContextMenuが表示されてしまうため、意図的に非表示にしている。 -->
    <StackPanel.ContextMenu>
        <ContextMenu Visibility="Collapsed"/>
    </StackPanel.ContextMenu>
</StackPanel>