This module provides a data model layer for a WPF Ribbon control implementation. It defines a class hierarchy representing ribbon UI elements—tabs, groups, buttons, menus, galleries, and various input controls—with full INotifyPropertyChanged support for WPF data binding. The classes serve as ViewModels or data transfer objects that abstract ribbon control state, enabling separation between UI definition and rendering.
2. Public Interface
ControlData
Base class for all ribbon control elements. Implements INotifyPropertyChanged.
Property
Type
Description
Label
string
Display label for the control.
LargeImage
Uri
URI for 32x32 icon.
SmallImage
Uri
URI for 16x16 icon.
ToolTipTitle
string
Tooltip header text.
ToolTipDescription
string
Tooltip body text.
ToolTipImage
Uri
Tooltip image URI.
ToolTipFooterTitle
string
Tooltip footer header.
ToolTipFooterDescription
string
Tooltip footer body.
ToolTipFooterImage
Uri
Tooltip footer image URI.
Command
ICommand
Command executed on control activation.
KeyTip
string
Keyboard shortcut hint.
Event
Description
PropertyChanged
Raised when any property value changes.
ButtonData
Simple button control data. Extends ControlData with no additional members.
SeparatorData
Visual separator in menus/toolbars. Extends ControlData with no additional members.
GalleryItemData
Individual item within a gallery. Extends ControlData with no additional members.
TextBoxData
Text input control data. Extends ControlData.
Property
Type
Description
Text
string
Current text value. Raises PropertyChanged("Text") on change.
CheckBoxData
Checkbox control data. Extends ControlData.
Property
Type
Description
IsChecked
bool
Checked state. Raises PropertyChanged("IsChecked") on change.
RadioButtonData
Radio button control data. Extends ControlData.
Property
Type
Description
IsChecked
bool
Selected state. Raises PropertyChanged("IsChecked") on change.
ToggleButtonData
Toggle button control data. Extends ControlData.
Property
Type
Description
IsChecked
bool
Toggled state. Raises PropertyChanged("IsChecked") on change.
MenuButtonData
Dropdown menu button data. Extends ControlData.
Constructor
Description
MenuButtonData()
Creates instance with isApplicationMenu = false.
MenuButtonData(bool isApplicationMenu)
Creates instance with specified application menu flag.
Property
Type
Description
IsVerticallyResizable
bool
Vertical resize capability.
IsHorizontallyResizable
bool
Horizontal resize capability.
ControlDataCollection
ObservableCollection<ControlData>
Child controls (lazily initialized).
SplitButtonData
Split button with dropdown. Extends MenuButtonData.
Constructor
Description
SplitButtonData()
Creates instance with isApplicationMenu = false.
SplitButtonData(bool isApplicationMenu)
Creates instance with specified application menu flag.
Property
Type
Description
IsChecked
bool
Checked state for checkable split buttons.
IsCheckable
bool
Whether the button can be checked.
DropDownButtonData
ButtonData
Lazily-initialized dropdown button data.
MenuItemData
Menu item data. Extends SplitButtonData.
Constructor
Description
MenuItemData()
Creates instance with isApplicationMenu = false.
MenuItemData(bool isApplicationMenu)
Creates instance with specified application menu flag.
SplitMenuItemData
Split menu item data. Extends MenuItemData.
Constructor
Description
SplitMenuItemData()
Creates instance with isApplicationMenu = false.
SplitMenuItemData(bool isApplicationMenu)
Creates instance with specified application menu flag.
ApplicationMenuItemData
Application menu item data. Extends MenuItemData.
Constructor
Description
ApplicationMenuItemData()
Creates instance with isApplicationMenu = false.
ApplicationMenuItemData(bool isApplicationMenu)
Creates instance with specified application menu flag.
ApplicationSplitMenuItemData
Application split menu item data. Extends SplitMenuItemData.