This repository has been archived by the owner on Sep 11, 2023. It is now read-only.
/
MyRibbonBarManager.vb
78 lines (69 loc) · 2.43 KB
/
MyRibbonBarManager.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Windows.Forms
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.XtraBars
Imports DevExpress.Skins
Imports System.Drawing
Imports DevExpress.Utils
Namespace DXSample
Public Class MyRibbonBarManager
Inherits RibbonBarManager
Private checkImage_Renamed, uncheckImage_Renamed As Image
Public Sub New(ByVal control As RibbonControl)
MyBase.New(control)
End Sub
Friend Property CheckImage() As Image
Get
If checkImage_Renamed Is Nothing Then
checkImage_Renamed = GetCheckImage()
End If
Return checkImage_Renamed
End Get
Set(ByVal value As Image)
checkImage_Renamed = value
End Set
End Property
Friend Property UncheckImage() As Image
Get
If uncheckImage_Renamed Is Nothing Then
uncheckImage_Renamed = GetUncheckImage()
End If
Return uncheckImage_Renamed
End Get
Set(ByVal value As Image)
uncheckImage_Renamed = value
End Set
End Property
Protected Overrides Function CreateItemViewInfo(ByVal viewInfo As DevExpress.XtraBars.Ribbon.ViewInfo.BaseRibbonViewInfo, ByVal item As IRibbonItem) As DevExpress.XtraBars.Ribbon.ViewInfo.RibbonItemViewInfo
Dim checkButtonLink As BarCheckItemLink = TryCast(item, BarCheckItemLink)
If checkButtonLink IsNot Nothing Then
Dim owner As BarCheckItem = TryCast(checkButtonLink.Item, BarCheckItem)
owner.Glyph = UncheckImage
RemoveHandler owner.CheckedChanged, AddressOf OnCheckedChanged
AddHandler owner.CheckedChanged, AddressOf OnCheckedChanged
Return New MyRibbonCheckItemViewInfo(viewInfo, item)
End If
Return MyBase.CreateItemViewInfo(viewInfo, item)
End Function
Private Sub OnCheckedChanged(ByVal sender As Object, ByVal e As ItemClickEventArgs)
Dim item As BarCheckItem = TryCast(e.Item, BarCheckItem)
item.Glyph = If(item.Checked, CheckImage, UncheckImage)
End Sub
Private Function GetCheckImage() As Image
Dim images As Images = GetImages()
Return images(4)
End Function
Private Function GetUncheckImage() As Image
Dim images As Images = GetImages()
Return images(0)
End Function
Private Function GetImages() As Images
Dim skin As Skin = EditorsSkins.GetSkin(DevExpress.LookAndFeel.UserLookAndFeel.Default.ActiveLookAndFeel)
Dim elem As SkinElement = skin(EditorsSkins.SkinCheckBox)
Return elem.Image.GetImages().Images
End Function
End Class
End Namespace