彩票走势图

logo DevExpress WinForm中文手册
文档彩票走势图>>DevExpress WinForm中文手册>>添加和自定义工具栏皮肤选择器

添加和自定义工具栏皮肤选择器


立即下载DevExpress WinForms

您可以在工具栏(BarManager)和Ribbon Control中添加皮肤选择器,并允许用户在运行时选择皮肤。

将皮肤选择器添加到工具栏

在设计时,单击工具栏中的Add按钮,并从skin Item子菜单中选择一个皮肤选择器。

add

可以使用以下皮肤选择器:

Skin Menu (SkinBarSubItem)—— 将外观名称显示为菜单。

外观菜单

Skin List (SkinDropDownButtonItem)————将皮肤名称显示为可滚动列表,并带有内置搜索框,可按名称查找皮肤。

皮肤列表

Skin Palette List (SkinPaletteDropDownButtonItem)—— 显示当前选定的矢量皮肤的调色板。

调色板

您可以在代码中修改皮肤选择器。为此请使用外观选择器的s集合。

当您创建外观选择器(SkinBarSubItem、SkinDropDownButtonItem、SkinPaletteDropDownButtonItem、SkinRibbonGalleryBarItem和SkinPaletteRibbonGalleryBarItem)并将其添加到代码中的工具栏或功能区控件时,请确保调用外观选择器的Initialize方法。

C#:

SkinBarSubItem skinBarSubItem1 = new SkinBarSubItem();
barManager1.Items.Add(skinBarSubItem1);
bar1.ItemLinks.Add(skinBarSubItem1);
skinBarSubItem1.Initialize();

VB.NET:

Dim skinBarSubItem1 As New SkinBarSubItem()
BarManager1.Items.Add(skinBarSubItem1)
Bar1.ItemLinks.Add(skinBarSubItem1)
skinBarSubItem1.Initialize()

隐藏皮肤和皮肤组

您可以隐藏皮肤选择器中的单个项目,如下所示:

1.创建要排除的皮肤名称的字符串数组,您可以使用完整名称(例如“Office 2016 Colorful”)或部分名称(例如“2007”)。

C#:

string[] skinsToHide = { "Seven Classic", "DevExpress Style", "Dark", "2010", "2007", "Sharp" };

VB.NET:

Dim skinsToHide() As String = { "Seven Classic", "DevExpress Style", "Dark", "2010", "2007", "Sharp" }

2.创建一个自定义方法 ( HideSkins ),用于迭代皮肤选择器的项目,并删除与数组中的值匹配的皮肤。

C#:

private void HideSkins(string[] skinsToHide) {
for(var i = 0; i < skinBarSubItem1.ItemLinks.Count; i++) {
//Check regular button items
if(skinBarSubItem1.ItemLinks[i] is BarButtonItemLink) {
var item = skinBarSubItem1.ItemLinks[i];
foreach(var skin in skinsToHide) {
if(item.Caption.Contains(skin)) {
item.Visible = false;
}
}
}
//Check buttons nested in the "Bonus Skins" sub-menu
if(skinBarSubItem1.ItemLinks[i] is BarSubItemLink && skinBarSubItem1.ItemLinks[i].Caption == "Bonus Skins") {
BarSubItemLink group = (BarSubItemLink)skinBarSubItem1.ItemLinks[i];
for(var j = 0; j < group.Item.ItemLinks.Count; j++) {
var item = group.Item.ItemLinks[j];
foreach(var skin in skinsToHide) {
if(item.Caption.Contains(skin)) {
item.Visible = false;
}
}
}
}
//Hide theme skins
if(skinBarSubItem1.ItemLinks[i] is BarSubItemLink && skinBarSubItem1.ItemLinks[i].Caption == "Theme Skins") {
skinBarSubItem1.ItemLinks[i].Visible = false;
}
}
}

VB.NET:

Private Sub HideSkins(ByVal skinsToHide() As String)
For i = 0 To skinBarSubItem1.ItemLinks.Count - 1
'Check Items
If TypeOf skinBarSubItem1.ItemLinks(i) Is BarButtonItemLink Then
Dim item = skinBarSubItem1.ItemLinks(i)
For Each skin In skinsToHide
If item.Caption.Contains(skin) Then
item.Visible = False
End If
Next skin
End If
'Check bonus skins
If TypeOf skinBarSubItem1.ItemLinks(i) Is BarSubItemLink AndAlso skinBarSubItem1.ItemLinks(i).Caption <> "Theme Skins" Then
Dim group As BarSubItemLink = CType(skinBarSubItem1.ItemLinks(i), BarSubItemLink)
For j = 0 To group.Item.ItemLinks.Count - 1
Dim item = group.Item.ItemLinks(j)
For Each skin In skinsToHide
If item.Caption.Contains(skin) Then
item.Visible = False
End If
Next skin
Next j
End If
'Hide theme skins
If TypeOf skinBarSubItem1.ItemLinks(i) Is BarSubItemLink AndAlso skinBarSubItem1.ItemLinks(i).Caption = "Theme Skins" Then
skinBarSubItem1.ItemLinks(i).Visible = False
End If
Next i
End Sub

3.从Load事件处理程序调用HideSkins方法。

C#:

void ucBar_Load(object sender, EventArgs e) {
HideSkins(skinsToHide);
}

VB.NET:

Private Sub ucBar_Load(ByVal sender As Object, ByVal e As EventArgs)
HideSkins(skinsToHide)
End Sub

更改标题和图标

用迭代皮肤选择器的ItemLinks集合来更改项目标题或字形。

C#:

void ucBar_Load(object sender, EventArgs e) {
RenameSkins();
}
private void RenameSkins() {
for(var i = 0; i < skinBarSubItem1.ItemLinks.Count; i++) {
if(skinBarSubItem1.ItemLinks[i].Caption == "DevExpress Style") {
BarButtonItem parentItem = (BarButtonItem)skinBarSubItem1.ItemLinks[i].Item;
parentItem.Caption = "Default Skin";
parentItem.ImageUri.Uri = "Apply";
}
}
}

VB.NET:

Private Sub ucBar_Load(ByVal sender As Object, ByVal e As EventArgs)
RenameSkins()
End Sub
Private Sub RenameSkins()
For i = 0 To skinBarSubItem1.ItemLinks.Count - 1
If skinBarSubItem1.ItemLinks(i).Caption = "DevExpress Style" Then
Dim parentItem As BarButtonItem = CType(skinBarSubItem1.ItemLinks(i).Item, BarButtonItem)
parentItem.Caption = "Default Skin"
parentItem.ImageUri.Uri = "Apply"
End If
Next i
End Sub

下图显示了结果:

结果

使用定位器更改皮肤标题

您还可以使用Localizer对象来重命名外观项目。

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP