Private xamRibbon As XamRibbon
Private mListBox As ListBox
Private Sub addToggleButtonToolProperties()
'Code to Create XamRibbon object..
    If xamRibbon.Tabs.Count < 1 Then
        Return
    End If
    Dim igrTabItem As RibbonTabItem = xamRibbon.Tabs(0)
    'add RibbonGroup
    Dim toggleButtonToolGroup As RibbonGroup = getRibbonGroup(igrTabItem, "ToggleButtonToolProperties")
    'Add ToggleButtonTool
    Dim toggleBtnTool As New ToggleButtonTool()
    toggleBtnTool.Caption = "Toggle Button"
    toggleBtnTool.Id = "ToggleButton1"
    toggleBtnTool.KeyTip = "TG1"
    toggleBtnTool.LargeImage = getImageSource("/images/icons/Ribbon/New_Large.png")
    toggleBtnTool.SmallImage = getImageSource("/images/icons/Ribbon/Open_Large.png")
    toggleBtnTool.IsChecked = True
    AddHandler toggleBtnTool.Click, AddressOf toggleBtnTool_Click
    AddHandler toggleBtnTool.Cloned, AddressOf toggleBtnTool_Cloned
    AddHandler toggleBtnTool.CloneDiscarded, AddressOf toggleBtnTool_CloneDiscarded
    toggleButtonToolGroup.Items.Add(toggleBtnTool)
End Sub
'Event Handlers
Private Sub toggleBtnTool_CloneDiscarded(ByVal sender As Object, ByVal e As Infragistics.Windows.Ribbon.Events.ToolCloneDiscardedEventArgs)
    Me.mListBox.Items.Add("" & Chr(10) & "ToggleButtonTool " + getSendername(sender) + " is cloned discarded!")
    mListBox.ScrollIntoView(mListBox.Items(mListBox.Items.Count - 1))
End Sub
Private Sub toggleBtnTool_Cloned(ByVal sender As Object, ByVal e As Infragistics.Windows.Ribbon.Events.ToolClonedEventArgs)
    Me.mListBox.Items.Add("" & Chr(10) & "ToggleButtonTool " + getSendername(sender) + " is cloned!")
    mListBox.ScrollIntoView(mListBox.Items(mListBox.Items.Count - 1))
End Sub
Private Sub toggleBtnTool_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Me.mListBox.Items.Add("" & Chr(10) & "ToggleButtonTool " + getSendername(sender) + " is clicked!")
    mListBox.ScrollIntoView(mListBox.Items(mListBox.Items.Count - 1))
End Sub
Private Function getSendername(ByVal sender As Object) As String
    Dim result As String = "unknown"
   
    If TypeOf sender Is ToggleButtonTool Then
        Dim tbtool As ToggleButtonTool = TryCast(sender, ToggleButtonTool)
        result = "ToggleButtonTool" + ":" + tbtool.Caption + "location:" + tbtool.Location.ToString()
        result += "" & Chr(10) & "IsActine=" + tbtool.IsActive.ToString() + ",IsOnQat=" + tbtool.IsOnQat.ToString()
        result += "" & Chr(10) & "HaImage=" + tbtool.HasImage.ToString() + ",IsQatCommonTool=" + tbtool.IsQatCommonTool.ToString()
        result += "" & Chr(10) & "SizingMode=" + tbtool.SizingMode.ToString() + ",KeyTip=" + tbtool.KeyTip
        result += "" & Chr(10) & "HasCaption=" + tbtool.HasCaption.ToString() + ",Id=" + tbtool.Id
        result += "" & Chr(10) & "IsChecked=" + tbtool.IsChecked.ToString()
        result += "" & Chr(10) & "LargeImage=" + tbtool.LargeImage.ToString()
        result += "" & Chr(10) & "SmallImage=" + tbtool.SmallImage.ToString()
    End If
   
    Return result
End Function
'Create RibbonGroup
Private Function getRibbonGroup(ByVal igTabItem As RibbonTabItem, ByVal ribbonGroupCaption As String) As RibbonGroup
    Dim ribbonGroup As New RibbonGroup()
    ribbonGroup.Caption = ribbonGroupCaption
    Dim toolHorizontalWrapPanel As New ToolHorizontalWrapPanel()
    ribbonGroup.Items.Add(toolHorizontalWrapPanel)
    igTabItem.RibbonGroups.Add(ribbonGroup)
    Return ribbonGroup
End Function