RadContextMenu имеет дополнительное место, не закрывается автоматически

Я делаю некоторую вводную работу в WPF (мой опыт почти исключительно веб-разработка), и я немного застрял в том, что кажется проблемой стиля с RadContextMenu.

XAML для меню достаточно прост:

<telerik:RadContextMenu.ContextMenu>
    <telerik:RadContextMenu EventName="Click" ItemsSource="{Binding NewEntityMenuItems}" StaysOpen="False">
        <telerik:RadContextMenu.ItemTemplate>
            <DataTemplate>
                <telerik:RadMenuItem Header="{Binding Text}" Command="{Binding MenuItemClickedCommand}" StaysOpenOnClick="False"></telerik:RadMenuItem>
            </DataTemplate>
        </telerik:RadContextMenu.ItemTemplate>
    </telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>

Результат выполнения заканчивается следующим образом:

введите здесь описание изображения

Как видите, при наведении курсора на элемент есть две выделенные области, одна внутри другой. Если я нажму «внешнюю область» для пункта меню, команда не будет вызвана, но меню исчезнет. Если я щелкну "внутреннюю область" (ту, что с текстом), команда вызывается, но меню не исчезает.

Почему существуют отдельные регионы? Могу ли я иметь только один регион, который занимает ширину меню? А что еще и закрывает меню при нажатии?


person David    schedule 14.07.2014    source источник


Ответы (1)


Используйте ItemContainerStyle:

<n:RadContextMenu ItemsSource="{Binding ContextMenuItems}">
    <n:RadContextMenu.ItemContainerStyle>
        <Style TargetType="n:RadMenuItem">
            <Setter Property="Header" Value="{Binding Name}" />
            <Setter Property="Command" Value="{Binding Command}" />
            <Setter Property="ItemsSource" Value="{Binding Items}" />
            <Setter Property="IsSeparator" Value="{Binding IsSeparator}" />
        </Style>
    </n:RadContextMenu.ItemContainerStyle>
</n:RadContextMenu>
person Rover    schedule 22.09.2014