XAF之更丰富的状态栏

开发框架DevExpress XAF v24.2产品路线图预览——增强跨平台性 开发框架DevExpress XAF v24.2在今年年末更新,今天我们一起来抢先预览一波新功能,欢迎下载组件体验~ 阅读详情

XAF程序默认是有一个状态栏,如图1


图1  XAF默认状态栏

         但该状态栏只能显示字符串。若要自定义字符串,需要订阅WindowTemplateController. CustomizeWindowStatusMessages事件。此外,窗体仅提供了Window.Template.SetStatus(ICollection<string>)方法设置字符串,如果要在运行时更改较为麻烦。自定义状态栏字符串的方法参见帮助文档http://documentation.devexpress.com/#Xaf/CustomDocument3253

    其实,我们既然可以访问到窗体模版,就可以在代码中(当然也可以在设计器内)创建丰富的状态栏。

1.      新建一个WindowController,订阅Window.TemplateChanged事件,在为Frame设置Template时会触发该事件

protected override void OnActivated()
        {
            base.OnActivated();
            this.Window.TemplateChanged += this.Window_TemplateChanged;
        }

2.      在该WindowController内使用Window.Template访问BarManager,利用BarManager就获得了StatusBar的引用,即可以添加自己的状态栏控件了

IBarManagerHolder template = Window.Template as IBarManagerHolder;
            Bar bar =  template.BarManager.StatusBar ;

下图2是一个添加了时间显示BarStaticItem和图片显示PictureEdit的状态栏:

 

图2  自定义的状态栏

private void Window_TemplateChanged(object sender, EventArgs e)
        {
            IBarManagerHolder template = Window.Template as IBarManagerHolder;
            
            if (template != null)
            {
                
                if (this.Window.IsMain)
                {
                     _CurrentDateItem = new BarStaticItem();
                    _CurrentDateItem.Caption = String.Format("{0} {1}", DateTime.Now.ToLongDateString(), DateTime.Now.ToLongTimeString());
                    _CurrentDateItem.Alignment = BarItemLinkAlignment.Right;
                    _CurrentDateItem.Name = "Current DateTime";
                    _CurrentDateItem.MergeOrder = 3;
                    _CurrentDateItem.MergeType = BarMenuMerge.Replace;

                }
                pictureItem = new BarEditItem() { CanOpenEdit = false };
                RepositoryItemPictureEdit imageEdit = new RepositoryItemPictureEdit();
                pictureItem.Edit = imageEdit;
                imageEdit.AllowFocused = false;
                imageEdit.Appearance.BackColor = System.Drawing.Color.Transparent;
                imageEdit.BorderStyle = BorderStyles.NoBorder;
                pictureItem.Alignment = BarItemLinkAlignment.Right;
                pictureItem.EditValue = ImageLoader.Instance.GetImageInfo("arrow1").Image;
                pictureItem.Name = "Company Logo";
                pictureItem.MergeOrder = 4;
                pictureItem.MergeType = BarMenuMerge.Replace;

                Bar bar = template.BarManager != null ? template.BarManager.StatusBar : null;
                if (bar != null)
                {
                    bar.BeginUpdate();
                    if (this.Window.IsMain)
                    {
                        bar.ItemLinks.Add(_CurrentDateItem, true);
                    }
                    bar.ItemLinks.Add(pictureItem);
                    bar.EndUpdate();
                    this._Timer.Start();
                }
            }

另外,在调试过程中突然不显示自定义的项目,请删除debug目录下所有文件,再运行就行了。

Window.Template是对主窗体的引用,可以利用它获得一些很重要的对象。如

 Window.Template  as  IBarManagerHolder  -------------------获得----------------->BarManager

 Window.Template  as  IDockManagerHolder-------------------获得----------------->DockManager

 Window.Template  as  ISupportMdiContainer-------------------获得----------------->XtraTabbedMdiManager

 Window.Template  as  IWindowTemplate      -------------------获得----------------->SetStatus()方法

 Window.Template  as  IDynamicContainersTemplate  -------------------获得----------------->RegisterActionContainers, UnregisterActionContaners方法, ActionContainersChanged事件

 Window.Template  as  IViewSiteTemplate  -------------------获得----------------->ViewSiteControl

 Window.Template  as  XtraFormTeplateBase-------------------获得----------------->ActionContainersManager

或者直接使用 Window.Template  as DevExpress.ExpressApp.Win.CustomTemplates.MainForm获取全部成员


告别乱码:在Windows命令行环境下为execjs+Node.js设置正确的编码环境 本文深入解析Windows下execjs与Node.js编码冲突的根源,提供从系统级配置到Python、Node.js环境优化的完整解决方案。针对常见的GBK解码错误,详细介绍了控制台编码修改、subprocess.Popen补丁、跨平台兼容性设置等实用技巧,帮助开发者彻底解决中文环境下的编码问题。 阅读详情

相关推荐

玩转0.91寸OLED:用PCtoLCD2002自制个性字库和图标,打造你的STM32小屏幕UI

本文详细介绍了如何利用PCtoLCD2002软件为0.91寸OLED屏幕自制个性字库和图标,打造STM32项目的独特UI界面。从硬件连接到SSD1306驱动配置,再到使用IIC通信协议实现高效数据传输,全面解析了OLED屏幕的开发流程和优化技巧,帮助开发者提升嵌入式显示效果。

weixin_42570484的博客 130

Dev 控件imageComboBoxEdit 添加图片

先上图,后说明。                     图1 图1便是想要达到的效果。 1、先添加ImageComboBoxEdit控件,我将name改为imageComboBoxSplit,为了和后续代码相吻合。 2、添加ImageCollection控件。name设为imageCollection。 3、看图2,进入ImageCollection任务(鼠标点击ImageCo

RichurLiu的专栏 7056

别再只打印时间了!用STM32F407的RTC做个简易电子钟(OLED显示+CubeMx配置)

本文详细介绍了如何使用STM32F407的RTC模块和OLED屏幕制作一个简易电子钟,涵盖CubeMX配置、RTC时间转换和OLED显示设计。通过实战指南,开发者可以掌握从硬件连接到软件实现的完整流程,特别适合希望将STM32基础知识转化为实际应用的嵌入式爱好者。

weixin_42548829的博客 346

DevExpress GridView 每列前添加图片(TreeList View为例)

先看效果,我这里以TreeList View为例 关键在于设置dxg:TreeListView标签的两个属性ShowNodeImages和ImageFieldName ShowNodeImages:是否显示节点图片,默认为false ImageFieldName:图片在模型中的绑定字段,类型为BitmapImage,我这里将绑定字段名称定义为Image 数据源模型的部分字段定义如下(仅供参考),注意更换图片路径 如此设置就可以了。 最后:官方文档说明<dxg:GridColumn Field

菜鸟爱飞不飞的博客 1375

XAF状态机的使用.docx

XAF 状态机工作流 使用教程和详细注意事项,东西不错

xaf 状态机及角色设置的举例说明

xaf 状态机及角色设置的举例说明, xaf 状态机及角色设置的举例说明

XAF之向DetailView中添加Unbound UI元素

XAF中的UI元素都是通过数据自动生成的,有时,我们希望添加无绑定数据的UI元素,比如一个Button,这时就需要添加可视UI。 你的选择有下面几种: 1.添加到菜单栏,工具栏等预定义的ActionBase.Category中的位置;如帮助文档中大量添加Action的例子 2.添加一个ActionContainer到需要显示Action的位置,然后将ActionBase的Category设置

压碎起重机 1696

微信小程序OCR身份证识别实战:从拍照到信息提取全流程解析

本文详细解析了微信小程序中OCR身份证识别的全流程实现,从环境配置、拍照上传到OCR核心识别及安全优化。通过微信开发者工具和OCR插件,开发者可快速构建高效的身份信息采集系统,提升用户体验和数据安全性。重点介绍了图像处理、加密传输及混合云架构等企业级解决方案。

j0k1l2m3n的博客 458

XAF之创建高级Information Panel

在XAF的帮助文档中的topic为How to: Create Information Panels(http://documentation.devexpress.com/#Xaf/CustomDocument3309) 讲述了怎样创建InfoPanel,如图: 该主题涉及了自定义模版的较高级的应用,基于FeatureCenter的例子,下面讲述一下怎样创建一个高级InfoPane

压碎起重机 2224

阿里奇门接口联调全流程详解:从沙箱自测到正式上线的保姆级攻略

本文详细解析阿里奇门接口联调的全流程,从沙箱自测到正式上线的关键步骤与避坑指南。涵盖环境配置、业务场景测试、跨团队协作、灰度发布及生产运维监控,帮助开发者高效完成API对接,确保供应链协同系统的稳定运行。特别适合首次接触奇门对接的技术负责人参考。

weixin_42535461的博客 414

ZYNQ出现问题及解决办法汇总(一直更新)

问题目录使用软件及开发板版本一,vitis在build project时卡住。二,Could not find FPGA device on the board for connection 'Local'三,FPGA configuration failed:DONE PIN is not high四,Could not find ARM device on the board for connection 'Local' 使用软件及开发板版本 开发板:MZ7XA-7020 软件:vitis2020.2(

qq_45057368的博客 1万+

XAF之Window, Frame和Template

XAF自动产生的窗体由两个对象定义:一个称为Template的control和一个抽象实体Window。而查询窗体和ListView由Template和Frame组合来表示。Window, Frame和Template的区别是:Window和Frame不包含控件的位置信息而仅含有XAF程序的功能信息。Template包含了控件的位置信息,决定了Window和Frame的外观。 Template

压碎起重机 2030

通达信短周期指标盘中实时监控与预警选股实战

本文详细介绍了通达信短周期指标在盘中实时监控与预警选股中的实战应用。通过分时指标改造、多股同列监控技巧及预警策略优化,帮助短线交易者捕捉转瞬即逝的交易机会,提升选股效率与准确性。重点解析了如何避免假信号干扰及系统卡顿问题,并探讨了从预警到自动交易的进阶应用。

weixin_29230805的博客 896

DevExpress v15.1:XAF控件升级

下载最新版DevExpress eXpressApp Framework(XAF) v15.1> 为触摸设备优化网页模板和主题(CTP) 此版本包含了一个新的Web主题,专为设计XAF web应用程序和构建新的页面模板。这些改进将显著提高XAF网站在触摸设备上的使用情况。 发布声明模块 声明模块现在已经发布并可以在环境中使用,新版本的变化包括: 新增打开具有通

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 1169

Fiori Elements 的 Adapting the UI: Analytical List Page 全解析与实战

摘要:本文详细介绍了如何通过SAP Fiori elements的UI Adaptation功能对Analytical List Page(ALP)进行细粒度适配。重点讲解了页头过滤区、图表区域、表格区域等关键组件的可配置属性,包括过滤区折叠/固定、图表类型限制、表格滚动阈值等实用功能。文章强调这些适配均可通过可视化工具完成,无需修改业务代码,并提供了典型场景的实践清单。适用于SAP Fiori elements for OData V2项目,建议配合SAP Fiori tools的Adaptation E

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 434

SpringBoot 插件化开发详细总结

SpringBoot 插件化开发方案总结

congge 1万+

学习012-04-03-07 How to: Customize Window Status Messages (WinForms)(如何:自定义窗口状态消息(WinForms))

当应用程序使用安全系统时,典型Windows窗体XAF应用程序Window的状态栏会显示当前经过身份验证的用户名。本主题介绍如何添加自定义状态消息以及如何将默认消息替换为自定义消息。WindowTemplateController在所有Windows中激活并更新当前窗口状态和标题。WindowTemplateController公开WindowTemplateControllerCustomizeWindowStatusMessages事件,该事件发生在更新窗口状态消息之前,并允许您修改它们。

DevExpress Xaf 学习专栏 843

Simulink中搭建一个包含PID控制的压电陶瓷快反镜模型

这个模型只是一个基本框架,你需要根据实际的系统参数和要求进行调整和优化。希望这些步骤能帮助你在Simulink中搭建所需的模型。

AI的内部世界的博客 474

STM32G0实战:手把手教你用I2C驱动SH1106 OLED显示PD充电状态(附完整代码)

本文详细介绍了如何在STM32G0平台上通过I2C接口驱动SH1106 OLED显示屏,实时显示USB PD充电状态。从硬件连接到软件实现,包括I2C配置、SH1106初始化、显存管理到充电状态UI设计,提供了完整的代码示例和优化技巧,帮助开发者快速构建专业级充电监控系统。

weixin_30402343的博客 185

CRMEB开源电商系统 /api/products SQL注入漏洞复现(CVE-2024-36837)

2024年6月,CRMEB开源电商系统发布了新补丁,修复了一处SQL注入漏洞(CVE-2024-36837)。经分析,该漏洞可以通过请求api的路径接口来进行SQL注入,进而可能导致敏感信息泄露,该注入可暴露后台web绝对路径,深入利用可获取服务器权限,该漏洞无前置条件且利用简单,建议受影响的用户尽快修复漏洞。

0xSec 2882

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

PyQt5做无边框登录界面?从Qt Designer拖拽到代码实现的完整避坑指南

本文详细介绍了如何使用PyQt5和Qt Designer创建无边框登录界面,从环境配置、UI设计到代码实现的完整流程。涵盖PyUIC和PyRcc工具的使用,解决高DPI显示、样式表不生效等常见问题,并提供窗口拖动、按钮功能等交互实现方案,帮助开发者快速掌握现代UI开发技巧。

weixin_30954265的博客 482

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

音诺ai翻译机显示SSD1306与字符图形显示支持菜单层级语音导航

音诺AI翻译机通过SSD1306 OLED屏实现低功耗显示,结合字符与图形混合渲染提升信息密度,并创新引入菜单层级语音导航,实现视觉与听觉协同的人机交互。系统在资源受限的嵌入式平台上稳定运行,为视障用户和复杂环境提供流畅操作体验。

weixin_36382073的博客 835

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

DXperience中文视频教程(上)

DXperience WinForms系列视频教程:XtraTreeList功能概述 本视频详细说明了XtraTreeList的分级数据结构、聚焦、选择、数据统计、验证、过滤、排序以及类似Outlook的预览行等众多强大且实用功能。 DXperience WinForms系列视频教程:XtraBar功能概述 本视频详细介绍了在XtraBar中如何通过BarManager直接添加菜单栏,工具栏

IBigPig 1938

系统学习ssd1306显示控制流程图解

深入解析SSD1306的显示控制流程,结合时序图和初始化步骤,帮助掌握SSD1306在嵌入式系统中的实际应用与驱动原理。

weixin_35238815的博客 340

CC2530项目实战:用OLED屏做个简易物联网终端状态显示器(附完整工程)

本文详细介绍了基于CC2530和OLED屏的物联网终端状态显示器实现方案,包括硬件设计、驱动开发、界面布局和低功耗优化等关键环节。通过Zigbee协议栈集成和智能刷新策略,该方案可实时显示网络状态和传感器数据,适用于智能家居、工业监测等场景,提供完整的工程实现代码和调试技巧。

weixin_42639246的博客 337
上一篇: DEV之理解XtraEditors几个概念
下一篇: XAF之创建条件外观
qjpcpu
博客等级 码龄15年 59粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值