EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:自定义窗口标题

典型的Windows Forms XAF应用程序窗口的标题由两部分组成,并用破折号分隔。在主窗口中,第一部分是活动对象标题,第二部分是应用程序名称。在“详细信息视图”窗口中,标题的第一部分由“详细信息视图”节点的ObjectCaptionFormat属性指定,第二部分是当前的类标题。

HowToCustomizeCaptionDefault

ASP.NET XAF应用程序也是如此。但是,不同之处在于浏览器可以修改字幕。例如,Microsoft Internet Explorer将其自己的名称附加到标题。

HowToCustomizeCaptionDefaultIE

ASP.NET XAF应用程序不会直接修改浏览器窗口标题,而是会设置网页标题。您可以查看任何ASP.NET应用程序页面的HTML源。您会注意到,应用程序标题插入在<title>和</ title>标记之间。

注意

移动平台不支持本主题中描述的方法。如果有必要在您的Mobile应用程序中实现这些方案,请使用支持中心与我们联系。

可以更改默认字幕。本主题描述如何自定义字幕。

将自定义文本设置为标题

WindowTemplateController在所有Windows启动,并更新当前窗口状态和标题。该WindowTemplateController公开WindowTemplateController.CustomizeWindowCaption事件。此事件在更新窗口标题之前发生,并允许您更改该标题。窗口标题由XAF中的SplitString类表示。

要修改窗口标题,请创建一个自定义窗口控制器,订阅CustomizeWindowCaption事件并进行处理。在CustomizeWindowCaption事件处理程序中,将自定义值分配给WindowCaption.Text属性。若要仅在主窗口中激活自定义窗口控制器,请在Controller构造函数中将TargetWindowType设置为Main。有关详细信息,请参考WindowController.TargetWindowType和Window.IsMain主题。

using DevExpress.ExpressApp;
using DevExpress.ExpressApp.SystemModule;
// ...
public class CustomizeWindowController : WindowController {
    public CustomizeWindowController() {
        TargetWindowType = WindowType.Main;
    }
    protected override void OnActivated() {
        base.OnActivated();
        WindowTemplateController controller = Frame.GetController<WindowTemplateController>();
        controller.CustomizeWindowCaption  = Controller_CustomizeWindowCaption;
    }
    private void Controller_CustomizeWindowCaption(object sender, CustomizeWindowCaptionEventArgs e) {
        e.WindowCaption.Text = "My Custom Caption";
    }
    protected override void OnDeactivated() {
        base.OnDeactivated();
        WindowTemplateController controller = Frame.GetController<WindowTemplateController>();
        controller.CustomizeWindowCaption -= Controller_CustomizeWindowCaption;
    }
}

下图说明了Windows Forms应用程序中的自定义标题。

HowToCustomizeCaptionCustom1

下图说明了ASP.NET应用程序中的自定义标题。

HowToCustomizeCaptionCustom1IE

修改字幕的一部分

若要更改标题的第二部分,请修改CustomizeWindowCaption事件处理程序中的WindowCaption.SecondPart属性。

private void Controller_CustomizeWindowCaption(object sender, CustomizeWindowCaptionEventArgs e) {
    e.WindowCaption.SecondPart  = " (Powered by XAF)";
}

下图显示了修改后的第二部分的自定义标题。

HowToCustomizeCaptionCustom2

HowToCustomizeCaptionCustom2IE

修改字幕分隔符

若要更改标题分隔符,请在CustomizeWindowCaption事件处理程序中为WindowCaption.Separator属性分配一个自定义值。

private void Controller_CustomizeWindowCaption(object sender, CustomizeWindowCaptionEventArgs e) {
    e.WindowCaption.Separator = ": ";
}

下图说明了带有自定义分隔符的标题。

HowToCustomizeCaptionCustom3

HowToCustomizeCaptionCustom3IE

交换字幕的一部分

若要更改标题部分的顺序,请在CustomizeWindowCaption事件处理程序中交换WindowCaption.FirstPartWindowCaption.SecondPart属性的值。

private void Controller_CustomizeWindowCaption(object sender, CustomizeWindowCaptionEventArgs e) {
    string TmpString = e.WindowCaption.FirstPart;
    e.WindowCaption.FirstPart = e.WindowCaption.SecondPart;
    e.WindowCaption.SecondPart = TmpString;
}

下图显示了左右部分互换的自定义标题。

HowToCustomizeCaptionCustom4

HowToCustomizeCaptionCustom4IE

仅显示字幕的一部分

若要仅显示字幕的第二部分,请将WindowCaption.FirstPart设置为null(在VB中为Nothing)。

private void Controller_CustomizeWindowCaption(object sender, CustomizeWindowCaptionEventArgs e) {
    e.WindowCaption.FirstPart = null;
}
注意

您不必将WindowCaption.Separator属性设置为null(在VB中为Nothing)来禁用分隔符显示(当标题部分之一为空字符串或为null(在VB中为Nothing))。分隔符将被自动省略。有关详细信息,请参见SplitString主题。

下图说明了自定义标题。

HowToCustomizeCaptionCustom5

HowToCustomizeCaptionCustom5IE

您可以使用WindowTemplateController.UpdateWindowCaption方法刷新窗口标题。

相关文章

转载保留此链接,注明出处