如何在 WPF 中创建一组单选菜单项?

Posted

技术标签:

【中文标题】如何在 WPF 中创建一组单选菜单项?【英文标题】:How can I create a group of radio menu items in WPF? 【发布时间】:2011-09-09 08:04:07 【问题描述】:

WPF 似乎缺少 RadioMenuItem 类或类似功能。在Windows.Forms 中,菜单项具有RadioChecked 属性,但WPF 菜单项只有IsChecked。我可以将实际的RadioButtons 放在MenuItem 中,但这感觉很奇怪,看起来很尴尬。

如何创建一组功能类似于 WPF 菜单中的单选按钮的菜单项?如需参考,请参阅 IE8 中的“缩放”菜单。

【问题讨论】:

这已经被问过很多次了,但是 SO 搜索并不是最聪明的。 Mutually exclusive checkable menu items?的可能重复 @H.B.这个问题不是重复的。它非常相似,但仍然处理 IsChecked 属性(绘制复选标记)而不是 RadioChecked-type 属性(绘制圆圈)。 这部分问题是你的问题中最少的,它实际上是一个装饰方面。 @H.B.化妆品方面对我来说很重要。 【参考方案1】:

将 MenuItem 的 Template 更改为显示 RadioButton 而不是标准显示

【讨论】:

我不想显示RadioButton。这就是我目前的情况,但它很笨重。如果您查看我用作示例的 IE8 菜单,您会发现它不是实际的RadioButton,而是带有圆圈作为活动项目图标的MenuItem @Matthew 您仍然会更改模板以显示圆圈而不是标准显示。您不必使用实际的 RadioButton 对象。【参考方案2】:

我发现了这个,StatckOverflow 在 Google 上发布了另一篇帖子,但都没有适合我的答案。

你不想用Template你想用ItemContainerStyle。

我把答案放在另一个堆栈溢出帖子上: https://***.com/a/11497189/375727

【讨论】:

以上是关于如何在 WPF 中创建一组单选菜单项?的主要内容,如果未能解决你的问题,请参考以下文章

如何将单选按钮添加到菜单项?

如何在我的程序中保存一组单选按钮的状态?

如何在 Flutter 中只选择一组单选按钮的值?

如何指示需要一组单选按钮[重复]

导轨视图中的多组单选按钮

Java----如何在窗口中创建菜单