提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:龚雪|2022-11-02 09:58:13.903|阅读 429 次
概述:本文主要介绍在使用DevExpress WinForm开发一个应用程序是,如何添加和自定义工具栏皮肤选择器,欢迎下载相关组件体验!
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
相关链接:
DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
您可以向工具栏(BarManager)和Ribbon Control添加skin selectors(皮肤选择器),来允许用户在运行时选择皮肤。
在设计时,单击工具栏中的[Add]按钮,并从skin Item子菜单中选择一个皮肤选择器。
以下皮肤选择器可用:
您可以在代码中修改皮肤选择器,为此使用皮肤选择器的集合。
当您创建皮肤选择器(SkinBarSubItem, SkinDropDownButtonItem, skinpaletdropdownbuttonitem, SkinRibbonGalleryBarItem和SkinPaletteRibbonGalleryBarItem)并将它们添加到代码中的工具栏或Ribbon控件时,确保调用了皮肤选择器的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对象重命名皮肤项。
DevExpress技术交流群6:600715373 欢迎一起进群讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn
文章转载自:慧都网



在嵌入式软件测试领域,对交叉编译代码进行单元测试是一大挑战。Parasoft C/C++test作为专业的C/C++测试工具,能够与劳特巴赫Trace32调试器深度集成。下面会详细介绍如何在C++test中配置Trace32调试器,实现对PowerPC架构程序的单元测试,涵盖环境设置、项目导入到测试执行的全过程。
本文将为大家介绍如何使用DevExpress WinForms数据网格控件实现摘要文本的格式化,欢迎下载最新版组件体验!
Parasoft C/C++test作为一款功能强大的自动化测试工具,为嵌入式开发提供了全面的测试解决方案。特别是在CCS开发环境中,C++test能够无缝集成,为F2812等DSP项目提供专业的单元测试支持。下面将介绍如何在CCS3环境下配置和使用C++test进行F2812项目的单元测试。
在嵌入式开发中,尤其是基于ARM架构的安全关键领域,单元测试是验证代码在目标硬件上运行时行为正确性的关键环节,对于保障最终产品的可靠性至关重要。下面将介绍如何利用Parasoft C/C++test开展单元测试,包括配置、执行及解决可能遇到的许可证问题,完成从静态检查到动态运行的完整测试闭环。
相关产品
优秀的界面控件开发包,帮助企业构建卓越应用!
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
DevExpress WinForms Subscription为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。
最新文章 MORE
永利最大(官方)网站相关的文章 MORE
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@hmdbvip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
永利最大(官方)网站 