EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

文本通知

在ASP.NET和WinForms XAF应用程序中,可以使用ShowViewStrategyBase.ShowMessage方法显示带有详细通知文本的消息框。

用于显示通知的DevExpress组件和小部件

XAF使用DevExpress WinForms和DevExtreme组件和小部件来显示WinForms和ASP.NET应用程序的通知。

WinForms通知:

您可以选择WinForms应用程序的WinMessageType枚举中列出的三种可用通知类型之一:

ASP.NET通知:

使用DevExtreme dxToast小部件显示通知。

使用文字通知

一旦平台无关的markCompletedAction更新任务,则应该显示“成功”消息,如SimpleProjectManager演示中所示(此演示默认安装在%PUBLIC%\ Documents \ DevExpress演示19.2 \ Components \ eXpressApp Framework \ SimpleProjectManager中)。同样,任务的“详细信息视图”应显示在“确定”消息按钮单击时调用的弹出窗口中。为此,使用带有MessageOptions参数的ShowMessage方法。该MessageOptions类包含两者的文本通知的平台无关和平台特定的设置。下面的代码片段演示了实现此方法的示例:

using DevExpress.ExpressApp;
public class ProjectTaskController : ViewController {
    //鈥�
    MessageOptions options = new MessageOptions();
    options.Duration = 2000;
    options.Message = string.Format("{0} task(s) have been successfully updated!", e.SelectedObjects.Count);
    options.Type = InformationType.Success;
    options.Web.Position = InformationPosition.Right;
    options.Win.Caption = "Success";
    options.Win.Type = WinMessageType.Toast;
    options.OkDelegate = () => {
        IObjectSpace os = Application.CreateObjectSpace(typeof(ProjectTask));
        DetailView newTaskDetailView = Application.CreateDetailView(os, os.CreateObject<ProjectTask>());
        Application.ShowViewStrategy.ShowViewInPopupWindow(newTaskDetailView);
     };
     Application.ShowViewStrategy.ShowMessage(options);
}

在下面的图像中查看结果。

WinForms应用程序:

ShowMessage_Win

ASP.NET应用程序:

ShowMessage_Web

重点
  • Toast Notifications Manager需要固定在Windows 10开始屏幕上的应用程序快捷方式才能正确显示Toast通知。请参阅快速入门:从桌面文章发送祝酒通知,以了解更多信息。完成此操作后,您需要根据Toast Notification Manager文章自定义ToastNotificationsManager实例。使用DevExpress.ExpressApp.Win.WinShowViewStrategyBase.CustomizeToastNotificationsManager事件访问实例。
  • 在ASP.NET应用程序中,通知只能在XAF RaiseXafCallback方法发起并由XafCallbackManager处理的回发和回调中显示。这不适用于由控件启动的回调,例如网格排序回调。

通知定制

  • 使用WinMessageOptions.ImageOptions属性更改ToastAlert控件显示的WinForms通知的默认图像:

    using System.Drawing;
    using DevExpress.ExpressApp;
    using DevExpress.Utils.Svg;
    //...
        MessageOptions options = new MessageOptions();
        //options.Win.ImageOptions.Image = Image.FromFile(@"D:\Images\success.png");
        // or
        options.Win.ImageOptions.SvgImage = SvgImage.FromFile(@"D:\Images\Success.svg");
        options.Win.ImageOptions.SvgImageSize = new Size(50, 50);
        Application.ShowViewStrategy.ShowMessage(options);
    

    或者,您可以使用WinShowViewStrategyBase类的CustomGetImage事件,如下所示:

    using System.Drawing;
    using DevExpress.ExpressApp.Win;
    //...
        ((WinShowViewStrategyBase)Application.ShowViewStrategy).CustomGetImage  = 
        ShowMessagesController_CustomGetImage;
        //...
        void ShowMessagesController_CustomGetImage(object sender, CustomGetImageEventArgs e) {
            e.Image = new Bitmap(32, 32); 
            //...
        }
    
  • 使用WinShowViewStrategyBase类的CustomGetFlyoutBackColor事件来更改弹出对话框的颜色:

    using System.Drawing;
    using DevExpress.ExpressApp.Win;
    //...
        ((WinShowViewStrategyBase)Application.ShowViewStrategy).CustomGetFlyoutBackColor  = 
        ShowMessagesController_CustomGetFlyoutBackColor;
        //...
        void ShowMessagesController_CustomGetFlyoutBackColor(object sender, CustomGetFlyoutBackColorEventArgs e) { 
            if(e.InformationType == InformationType.Error) {
                e.BackColor = Color.Red;
            } 
        }
    
  • 使用WinShowViewStrategyBase类的CustomizeAlertControl事件来自定义Alert控件:

    using DevExpress.ExpressApp.Utils;
    using DevExpress.ExpressApp.Win;
    using DevExpress.XtraBars.Alerter;
    //...
        ((WinShowViewStrategyBase)Application.ShowViewStrategy).CustomizeAlertControl  = 
    ShowMessagesController_CustomizeAlertControl;
        //...
        void ShowMessagesController_CustomizeAlertControl(object sender, CustomizeAlertControlEventArgs e) {
            AlertButton button = new AlertButton(ImageLoader.Instance.GetImageInfo("BO_Attention").Image);
            button.Name = "buttonAlert";
            e.AlertControl.Buttons.Add(button);
            //...
        }
    
  • 使用WinShowViewStrategyBase类的CustomizeToastNotificationsManager访问Toast Notification Manager实例:

    using DevExpress.ExpressApp.Win;
    //...
        ((WinShowViewStrategyBase)Application.ShowViewStrategy).CustomizeToastNotificationsManager  =
    ShowMessagesController_CustomizeToastNotificationsManager;
        //...
        void ShowMessagesController_CustomizeToastNotificationsManager(object sender, 
    CustomizeToastNotificationsManagerEventArgs e) {
            e.ToastNotificationsManager.UserCancelled  = ToastNotificationsManager_UserCancelled;
        }
        void ToastNotificationsManager_UserCancelled(object sender, 
    DevExpress.XtraBars.ToastNotifications.ToastNotificationEventArgs e) {
            //...
        }
    

通知按钮标题本地化

您可以使用模型编辑器本地化通知按钮的标题。导航到本地化| 在“对话框按钮”节点上,选择“确定”或“取消”节点,然后将一个特定的字符串设置为“值”属性。请注意,此设置也适用于其他对话框按钮。

Notification_Localization

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