using System; using Shared; using HDL_ON.UI.CSS; namespace HDL_ON.UI { /// /// 通用二次确认界面 /// 可以自定义按钮文字、提示内容支持多行显示 /// public class ConfirmDialog : Dialog { /// bodyView /// FrameLayout bodyView; /// /// 是否加载报警颜色窗口(红色) /// bool isAlarmColor = false; /// /// /// public ConfirmDialog() { } /// /// /// public ConfirmDialog(bool isAlarmColor) { this.isAlarmColor = isAlarmColor; } /// /// 初始化Dialog /// /// 标题 /// 提示信息 /// /// /// /// void ShowDialogBase(string titleStr, string msgStr, Action okAction, Action cancelAction, int cancelID = StringId.Cancel, int confirmID = StringId.Confirm) { this.BackgroundColor = CSS_Color.DialogTransparentColor1; if (bodyView != null && bodyView.Parent != null) { bodyView.RemoveFromParent(); } bodyView = new FrameLayout(); this.AddChidren(bodyView); FrameLayout contentView = new FrameLayout() { Gravity = Gravity.Center, Width = Application.GetRealWidth(270), Height = Application.GetRealHeight(140), BackgroundColor = CSS_Color.MainBackgroundColor, BorderColor = 0x00000000, BorderWidth = 0, Radius = (uint)Application.GetMinRealAverage(10), }; bodyView.AddChidren(contentView); Button btnTitle = new Button() { Y = Application.GetRealHeight(20), Height = Application.GetRealHeight(22), TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, Text = titleStr, }; contentView.AddChidren(btnTitle); int Width135 = Application.GetRealWidth(135); //提示内容按钮 Button btnMsg = new Button() { Y = btnTitle.Bottom + Application.GetRealHeight(4), X = Application.GetRealWidth(6), Height = Application.GetRealHeight(46), Width = Application.GetRealWidth(258), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Text = msgStr, IsMoreLines = true, }; contentView.AddChidren(btnMsg); Button btnLine = new Button() { Y = Application.GetRealHeight(96), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(270 / 2), BackgroundColor = CSS_Color.DividingLineColor, }; contentView.AddChidren(btnLine); Button btnCancel = new Button() { Y = btnLine.Bottom, Width = Width135, Height = Application.GetRealHeight(43), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.SubheadingFontSize, TextID = cancelID, }; contentView.AddChidren(btnCancel); Button btnConfirm = new Button() { X = contentView.Width - Width135, Y = btnLine.Y, Width = Width135, Height = Application.GetRealHeight(45), TextAlignment = TextAlignment.Center, //TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.MainBackgroundColor, BackgroundColor = CSS_Color.MainColor, TextID = confirmID, }; contentView.AddChidren(btnConfirm); //例:右下圆角 大小为50 int mRectCornerID = HDLUtils.RectCornerBottomRight; btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID); btnCancel.MouseUpEventHandler += (sender, e) => { this.Close(); cancelAction?.Invoke(); }; btnConfirm.MouseUpEventHandler += (sender, e) => { this.Close(); okAction?.Invoke(); }; //this.Show(); if(isAlarmColor) { btnTitle.TextColor = CSS_Color.WarningColor; btnConfirm.TextColor = CSS_Color.MainBackgroundColor; btnConfirm.BackgroundColor = CSS_Color.WarningColor; } } /// /// 加载提示Dialog /// /// /// /// public void ShowDialog(int titleId, int msgId, Action okAction, Action cancelAction = null) { this.ShowDialogBase(Language.StringByID(titleId), Language.StringByID(msgId), okAction, cancelAction); this.Show(); } /// /// 加载提示Dialog /// 可以自定义按钮文字 /// /// /// /// /// /// /// public void ShowDialog(int titleId, int msgId, Action okAction, Action cancelAction, int cancelID, int confirmID) { this.ShowDialogBase(Language.StringByID(titleId), Language.StringByID(msgId), okAction, cancelAction, cancelID, confirmID); this.Show(); } /// /// 加载提示Dialog /// /// /// /// public void ShowDialog(string titleStr, string msgStr, Action okAction, Action cancelAction = null) { this.ShowDialogBase(titleStr, msgStr, okAction, cancelAction); this.Show(); } /// /// 加载提示Dialog /// 可以自定义按钮文字 /// /// /// /// /// /// /// public void ShowDialog(string titleStr, string msgStr, Action okAction, Action cancelAction, int cancelID, int confirmID) { this.ShowDialogBase(titleStr, msgStr, okAction, cancelAction, cancelID, confirmID); this.Show(); } /// /// RefreshDialog 在Dialog没关闭情况下调用 /// 可以自定义按钮文字 /// /// /// /// /// /// /// public void RefreshDialog(string titleStr, string msgStr, Action okAction, Action cancelAction, int cancelID, int confirmID) { this.ShowDialogBase(titleStr, msgStr, okAction, cancelAction, cancelID, confirmID); //this.Show();不需要show } } }