DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
在本文中您将学习到如何向View项添加上下文按钮,从而将View转换为交互式图像库。
由于WinExplorer视图可以被视为带有数据源的图像库,因此您可能希望允许最终用户与这些图像进行交互,这可以使用上下文按钮功能来完成。
DevExpress技术交流群11:749942875 欢迎一起进群讨论
启用ExtraLarge样式
首先将视图的WinExplorerViewOptionsView.Style设置为WinExplorerViewStyle.ExtraLarge,这将为图像区域内的上下文按钮提供足够的空间。

然后,从WinExplorerView.ColumnSet中删除WinExplorerViewColumns.TextColumn。启动应用程序,看到现在只有图像显示。

添加上下文按钮
接下来,找到WinExplorerView.ContextButtons属性并调用编辑器对话框。

在这里,您可以添加由所有视图项共享的上下文按钮。有三种按钮类型:简单的按钮、检查按钮和评级控件,选择一个简单的Context Button类型按钮类型并将其添加到集合中,以类似的方式,添加另一个简单的按钮、一个检查按钮和一个评级控件。

第一个按钮将用作显示汽车型号名称的标签,目前将其ContextButtonBase.Caption设置为MODEL,并将其与MiddleTop对齐。

对于第二个按钮,从DevExpress图标库中选择问号图像,此按钮将显示其他汽车信息。

更改ContextItem.AlignmentOptions属性来将此按钮移动到右上角。
评级项目将允许最终用户对汽车进行评级,将其移动到MiddleBottom位置。
显示上下文按钮面板
默认情况下,当您将鼠标悬停在相应区域时,按钮将显示在基础图像上方。您还可以启用顶部和底部面板,它们将作为按钮的容器出现。展开WinExplorerView.ContextButtonOptions属性,设置顶部和底部面板的背景色为150,0,0,0,这是一个半透明的黑色,然后为两个面板添加填充。

运行应用程序来查看结果,面板已经出现,但现在面板和按钮颜色之间没有足够的对比。

返回到上下文按钮编辑器,并将所有项目的前景色设置为Gainsboro,确保打开字形皮肤功能,以便按钮图标被绘制为相同的颜色。

然后再次启动应用程序,看到所有颜色都已应用。

自定义单个上下文按钮
要正确初始化复选框和标题标签,处理WinExplorerView.ContextButtonCustomize事件,它允许您在按钮显示在项目中之前自定义按钮。要设置标题按钮中的值,请将其ContextButtonBase.Caption属性设置为当前记录中的Model Name列值。类似地,根据In Stock列的值设置检查按钮的CheckContextButton.Checked属性。
C#
using DevExpress.XtraGrid.Views.WinExplorer; // ... private void winExplorerView1_ContextButtonCustomize(object sender, DevExpress.XtraGrid.Views.WinExplorer.WinExplorerViewContextButtonCustomizeEventArgs e) { WinExplorerView view = sender as WinExplorerView; if (view == null) return; if (e.Item.Name == "contextTitleButton") ((ContextButton)e.Item).Caption = (string)view.GetRowCellValue(e.RowHandle, colModel_Name); if (e.Item.Name == "CheckContextButton") ((CheckContextButton)e.Item).Checked = (string)view.GetRowCellValue(e.RowHandle, colInStock); }
运行应用程序来查看更改——在顶部面板中显示的汽车型号和指示库存汽车的复选框。

响应点击上下文按钮
最后,处理WinExplorerView.ContextButtonClick事件,对于任何被单击的按钮,无论其类型如何,该事件都会触发。首先确定单击了哪个按钮,如果是问号按钮,则显示一个消息框,其中包含有关汽车的其他信息,这些信息由来自同一数据记录的字段值组成。
C#
using DevExpress.XtraGrid.Views.WinExplorer; // ... private void winExplorerView1_ContextButtonClick(object sender, ContextItemClickEventArgs e) { WinExplorerView view = sender as WinExplorerView; if (view == null) return; string caption = e.Item.Name; switch (caption) { case "ContextButton": string horsepower = view.GetRowCellValue((Int32)e.DataItem, colHorsePower).ToString; string cilinders = view.GetRowCellValue((Int32)e.DataItem, colCilinders).ToString; string doors = view.GetRowCellValue((Int32)e.DataItem, colDoors).ToString; string mpgCity = view.GetRowCellValue((Int32)e.DataItem, colMPGCity).ToString; string mpgHighway = view.GetRowCellValue((Int32)e.DataItem, colMPGHighway).ToString; XtraMessageBox.Show("Horsepower: " + horsepower + "\nCilinders: " + cilinders + "\nDoors: " + doors + "\nMPG City: " + mpgCity + "\nMPG Highway: " + mpgHighway, "Additional Info"); } }
运行应用程序并单击其中一项中的问号按钮来查看消息框。

更多DevExpress线上公开课、中文教程资讯请上中文网获取
关于慧都科技
慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。
慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/5249.html
相关产品: DevExpress WinForms Subscription, DevExpress Universal Subscription,