c# - 自定义菜单不可点击
问题描述
我正在尝试创建一个 3 个水平点菜单。我下面的代码很好地设置了 3 个点,但无法单击菜单并且不显示标题为“删除项目”的菜单项。
任何想法为什么?
<Window.Resources>
<Style TargetType="{x:Type Menu}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Menu}">
<Canvas >
<Path Data="M12.5,6.5 C12.5,9.8137085 9.8137085,12.5 6.5,12.5 C3.1862915,12.5 0.5,9.8137085 0.5,6.5 C0.5,3.1862915 3.1862915,0.5 6.5,0.5 C9.8137085,0.5 12.5,3.1862915 12.5,6.5 z M30.5,6.5 C30.5,9.8137085 27.813708,12.5 24.5,12.5 C21.186292,12.5 18.5,9.8137085 18.5,6.5 C18.5,3.1862915 21.186292,0.5 24.5,0.5 C27.813708,0.5 30.5,3.1862915 30.5,6.5 z M48.5,6.5 C48.5,9.8137085 45.813708,12.5 42.5,12.5 C39.186292,12.5 36.5,9.8137085 36.5,6.5 C36.5,3.1862915 39.186292,0.5 42.5,0.5 C45.813708,0.5 48.5,3.1862915 48.5,6.5 z"
Fill="Black"
HorizontalAlignment="Left"
Stretch="Fill"
Stroke="Black"
VerticalAlignment="Top"
Height="7" Width="23"/>
</Canvas>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Menu>
<MenuItem Header="Remove item" FontSize="12" />
</Menu>
</Grid>
解决方案
ControlTemplate
应该包含<ItemsPresenter />
要生成的子项的元素。
因此,您应该将该<ItemsPresenter />
元素添加到您的自定义模板中。例如,您可以使用 aGrid
或其他一些Panel
作为模板的根元素,然后将 theCanvas
和 the添加ItemsPresenter
到它。
推荐阅读
- laravel - 如何发送多封电子邮件以获取视图中的用户数据 - Laravel
- .net - 在 .NET 应用程序和 UWP 应用程序之间传递消息
- json - 是否可以在没有模板消息的情况下使用 NLog 的结构化日志记录?
- javascript - 如何使用 do while 循环多次将字符串推送到数组中?
- python - 通过 URL 从 excel 下载 Web 图像并保存到 Python 中的文件夹
- python - 按日期范围对数据框进行子集
- wordpress - Woocommerce 动作挂钩未触发
- stm32 - STM32F446RE 引导加载程序如何工作?
- dotnetnuke - 在 DotNetNuke-7 模块中查看服务器端代码
- apache-spark - 从包含实际文件路径的文本文件生成 rdd