1

GroupBoxちょっとしたコンテンツが含まれているシナリオがあります。ContextMenuそれに追加してGroupBox、ユーザーがボックス内の任意の場所を右クリックしたときにそのメニューを表示することを検討しています。

私が抱えている問題は、コンテキスト メニューが境界線またはヘッダーをGroupBoxクリックしたときにのみ表示されることです。ボックス内のどこかをクリックするContextMenuと、親の が表示されます。

問題を示すいくつかの XAML を次に示します。

<Window x:Class="Dummy.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Window.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Window menu" />
        </ContextMenu>
    </Window.ContextMenu>
    <GroupBox Header="GroupBox">
        <GroupBox.ContextMenu>
            <ContextMenu>
                <MenuItem Header="GroupBox menu" />
            </ContextMenu>
        </GroupBox.ContextMenu>
    </GroupBox>
</Window>

そのため、 内をクリックするGroupBoxと、常に「ウィンドウ メニュー」が表示されますが、代わりに「グループ メニュー」が必要です。

なぜこれが起こっているのか、そしてそれを解決する方法を知っている人はいますか?

どうもありがとう。

OJ

4

2 に答える 2

3

グループ ボックスは基本的に、ヘッダー ラベルが付いた空の境界線です。グループ ボックスにコンテンツがない場合、クリックは実際には owningWindowに到達します。これが、「ウィンドウ メニュー」が表示される理由を説明しています。グループ ボックスを完全に埋めるコンテンツをグループ ボックスに入れると、常にグループ ボックスのコンテキスト メニューが表示されます。

<GroupBox Header="GroupBox">
   <GroupBox.ContextMenu>
        <ContextMenu>
            <MenuItem Header="GroupBox menu"/>
        </ContextMenu>
    </GroupBox.ContextMenu>
    <Label HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> 
</GroupBox>
于 2009-08-12T00:47:18.250 に答える
2

実際の問題は、多くのコントロールに背景がないことです。コントロールに背景を追加すると、コンテキスト メニューが機能することがわかると思います。背景を表示したくない場合は、背景を透明に設定できます

于 2013-11-21T16:52:45.287 に答える