Lapish72
@Lapish72

Как отключать ContextMenu на дочерних элементах?

Есть grid на нем будет располагаться коллекция контролов. Мне нужно сделать так, чтобы ContextMenu работало только между элементами. Есть такой набросок кода, но он не работает. Что я делаю не так?

<Grid Background="Transparent">
    <Grid.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Добавить"/>
            <MenuItem Header="Удалить"/>
        </ContextMenu>
    </Grid.ContextMenu>

    <StackPanel>
        <Button Content="123" ContextMenuService.IsEnabled="False"/>
    </StackPanel>
</Grid>
  • Вопрос задан
  • 25 просмотров
Решения вопроса 1
Lapish72
@Lapish72 Автор вопроса
UserControl.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>


UserControl.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;
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 2 600 до 3 000 €
BRIO MRS Казань
от 70 000 до 120 000 ₽
Frostgate studio Новосибирск
от 60 000 до 100 000 ₽
23 сент. 2020, в 20:17
100000 руб./за проект
23 сент. 2020, в 20:15
12000 руб./за проект
23 сент. 2020, в 20:14
1000 руб./за проект