RadContextMenu有额外的空间,不会自动关闭

时间:2014-07-14 14:15:54

标签: wpf telerik contextmenu

我正在WPF中做一些介绍性的工作(我的经验几乎完全是Web开发),而且我对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>

运行时结果如下所示:

enter image description here

正如您所看到的,当悬停在项目上时,有两个突出显示的区域,一个在另一个区域内。如果单击菜单项的“外部区域”,则不会调用该命令,但菜单会消失。如果我单击“内部区域”(带有文本的区域),则调用命令,但菜单消失。

为什么有不同的区域?我可以只占用一个占据菜单宽度的区域吗?点击后还会关闭菜单?

1 个答案:

答案 0 :(得分: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>