WPF Ribbon:ToggleButton组?

14 浏览
0 Comments

WPF Ribbon:ToggleButton组?

我刚刚开始使用微软的08/2010年WPF Ribbon版本。基本操作似乎很简单,但是我该如何创建一个RibbonToggleButton组,只允许组中的一个按钮被选择,类似于单选按钮的行为方式?谢谢您的帮助。

0
0 Comments

在Microsoft WPF Ribbon栏的第一个版本中,我们不得不在代码后台中放置一些代码来实现所需的单选切换效果。

新版本是完全重写的。它支持MVVM和WPF约定。我相信可以在新的控件中通过XAML来实现。

在新版本中,我们可以使用ToggleButton组来实现单选切换效果。下面是示例代码:




在这个例子中,我们有三个ToggleButton,它们都属于同一个组(GroupName="MyGroup")。只能选择一个ToggleButton,当一个ToggleButton被选中时,其他ToggleButton将自动取消选中状态。

这样,我们就可以在XAML中实现所需的单选切换效果,而不需要在代码后台进行额外的处理。

0
0 Comments

问题的原因是RibbonToggleButton的行为与单选按钮的组不同,单选按钮的组可以设置一个组,一次只能选择一个。因此,需要编写RibbonToggleButton.Checked事件来处理所需的行为。这种方法没有问题(考虑到mvvm),因为代码后台专门处理UI行为。

我们使用Ribbon版本的第一个版本进行了类似的实现:

- 创建一个RibbonGroup

- 将RibbonToggleButtons添加到RibbonGroup中

- 为每个按钮连接一个Checked事件(它们都共享同一个处理程序)

Checked事件将在RibbonGroup中找到所有的RibbonToggleButton,并将它们取消选中,然后选中被选中的按钮。

这可能是另一种选择:

我们以前已经在UI方面使用过代码后台,但我正在尝试尽可能多地将其转移到XAML中。ListBox是我想要的方式。我正在进行一项实施工作,并希望在星期四完成。完成后,我将发布它。

ListBox XAML解决方案可能导致没有选定的按钮,这对我来说行不通 - 必须始终选择一个按钮。因此,只能使用代码后台。

0