C# WPF error XDG0062 "ContextMenu" не может иметь логического или визуального родителя
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="10*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Rectangle Fill="#000000FF" Panel.ZIndex="1" x:Name="canvas_main" MouseRightButtonDown="func_rc_menu" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
<Image Panel.ZIndex="0" Margin="20,20,20,20" Source="/img.jpg" Stretch="Uniform"/>
<Rectangle Fill="Blue" Grid.Row="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<ContextMenu x:Name="test">
<MenuItem Header="test"/>
</ContextMenu>
</Grid>
1 ошибка:
Ошибка XDG0062 Заданный аргумент находится вне диапазона допустимых значений. Имя параметра: index wpf_photo_viewer D:\Microsoft Visual Studio\Visual Studio Projects\wpf_photo_viewer\wpf_photo_viewer\MainWindow.xaml
2 ошибка:
Ошибка XDG0062 "ContextMenu" не может иметь логического или визуального родителя. wpf_photo_viewer D:\Microsoft Visual Studio\Visual Studio Projects\wpf_photo_viewer\wpf_photo_viewer\MainWindow.xaml
Ответы (1 шт):
Не знаю на счёт первой ошибки, но могу помочь со второй.
<ContextMenu x:Name="test">
<MenuItem Header="test"/>
</ContextMenu>
Этот кусок кода нужно поместить в специальный контейнер <Grid.ContextMenu>. По итогу выглядеть будет следующим образом:
<Grid.ContextMenu>
<ContextMenu x:Name="test">
<MenuItem Header="test"/>
</ContextMenu>
</Grid.ContextMenu>
В другие элементы вставлять контекстное меню нужно аналогичным методом.