簡體   English   中英

如何在子元素上禁用 ContextMenu?

[英]How to disable ContextMenu on child elements?

我想在網格中的子控件上禁用 ContextMenu,但是當用戶單擊元素之間的邊距區域中的網格時,必須看起來是 ContextMenu。

我有這個代碼:

<Grid Background="Transparent">
    <Grid.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Item1"/>
            <MenuItem Header="Item2"/>
        </ContextMenu>
    </Grid.ContextMenu>

    <!-- Just example. In future will some collections -->
    <StackPanel>
        <Button Content="123" ContextMenuService.IsEnabled="False"/>
    </StackPanel>
</Grid>

用戶控件.xaml

<UserControl.Resources>
    <ContextMenu x:Key="AmazingMenu">
        <MenuItem Header="Item1"/>
        <MenuItem Header="Item2"/>
    </ContextMenu>
</UserControl.Resources>

<Grid x:Name="MegaGrid" Background="Transparent" MouseRightButtonDown="Grid_MouseRightButtonDown">
    <!-- Some controls -->
</Grid>

用戶控件.xaml.cs

private void Grid_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    var control = e.OriginalSource as Grid;

    if (control.Name.Equals("MegaGrid"))
    {
        MegaGrid.ContextMenu = FindResource("AmazingMenu") as ContextMenu;
    }
    else
    {
        MegaGrid.ContextMenu = null;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM