【问题标题】:RadContextMenu has extra space, doesn't auto-closeRadContextMenu 有额外空间,不会自动关闭
【发布时间】:2014-07-14 14:15:54
【问题描述】:

我正在 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>

运行时结果如下:

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

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

【问题讨论】:

    标签: wpf telerik contextmenu


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 2020-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多