wxr
2021-12-15 e1a8f2f7e4d850beedeb1469610b878c1427e976
HDL_ON/UI/UI0-Public/Widget/ConfirmDialog.cs
@@ -1,4 +1,5 @@
using System;

using System;
using Shared;
using HDL_ON.UI.CSS;
@@ -6,10 +7,18 @@
{
    /// <summary>
    /// 通用二次确认界面
    /// 可以自定义按钮文字
    /// 可以自定义按钮文字、提示内容支持多行显示
    /// </summary>
    public class ConfirmDialog : Dialog
    {
        /// bodyView
        /// </summary>
        FrameLayout bodyView;
        /// <summary>
        /// 是否加载报警颜色窗口(红色)
        /// </summary>
        bool isAlarmColor = false;
        /// <summary>
        /// 
        /// </summary>
@@ -17,12 +26,19 @@
        {
        }
        /// <summary>
        ///
        /// </summary>
        public ConfirmDialog(bool isAlarmColor)
        {
            this.isAlarmColor = isAlarmColor;
        }
        /// <summary>
        /// 初始化Dialog
        /// </summary>
        /// <param name="titleStr"></param>
        /// <param name="msgStr"></param>
        /// <param name="titleStr">标题</param>
        /// <param name="msgStr">提示信息</param>
        /// <param name="okAction"></param>
        /// <param name="cancelAction"></param>
        /// <param name="cancelID"></param>
@@ -30,6 +46,14 @@
        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()
            {
@@ -41,12 +65,12 @@
                BorderWidth = 0,
                Radius = (uint)Application.GetMinRealAverage(10),
            };
            this.AddChidren(contentView);
            bodyView.AddChidren(contentView);
            Button btnTitle = new Button()
            {
                Y = Application.GetRealHeight(16),
                Height = Application.GetRealHeight(30),
                Y = Application.GetRealHeight(20),
                Height = Application.GetRealHeight(22),
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.SubheadingFontSize,
                TextAlignment = TextAlignment.Center,
@@ -54,17 +78,19 @@
                Text = titleStr,
            };
            contentView.AddChidren(btnTitle);
            int Width135 = Application.GetRealWidth(135);
            //提示内容按钮
            Button btnMsg = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Height = Application.GetRealHeight(25),
                Y = btnTitle.Bottom,
                Width = Application.GetRealHeight(200),
                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);
@@ -80,7 +106,7 @@
            Button btnCancel = new Button()
            {
                Y = btnLine.Bottom,
                Width = Application.GetRealWidth(135),
                Width = Width135,
                Height = Application.GetRealHeight(43),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.TextualColor,
@@ -91,9 +117,9 @@
            Button btnConfirm = new Button()
            {
                X = btnCancel.Right,
                X = contentView.Width - Width135,
                Y = btnLine.Y,
                Width = Application.GetRealWidth(135),
                Width = Width135,
                Height = Application.GetRealHeight(45),
                TextAlignment = TextAlignment.Center,
                //TextColor = CSS_Color.TextualColor,
@@ -119,7 +145,13 @@
                okAction?.Invoke();
            };
            this.Show();
            //this.Show();
            if(isAlarmColor)
            {
                btnTitle.TextColor = CSS_Color.WarningColor;
                btnConfirm.TextColor = CSS_Color.MainBackgroundColor;
                btnConfirm.BackgroundColor = CSS_Color.WarningColor;
            }
        }
        /// <summary>
@@ -131,6 +163,7 @@
        public void ShowDialog(int titleId, int msgId, Action okAction, Action cancelAction = null)
        {
            this.ShowDialogBase(Language.StringByID(titleId), Language.StringByID(msgId), okAction, cancelAction);
            this.Show();
        }
        /// <summary>
@@ -146,6 +179,7 @@
        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();
        }
        /// <summary>
@@ -157,6 +191,7 @@
        public void ShowDialog(string titleStr, string msgStr, Action okAction, Action cancelAction = null)
        {
            this.ShowDialogBase(titleStr, msgStr, okAction, cancelAction);
            this.Show();
        }
        /// <summary>
@@ -172,7 +207,23 @@
        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();
        }
        /// <summary>
        /// RefreshDialog 在Dialog没关闭情况下调用
        /// 可以自定义按钮文字
        /// </summary>
        /// <param name="titleStr"></param>
        /// <param name="msgStr"></param>
        /// <param name="okAction"></param>
        /// <param name="cancelAction"></param>
        /// <param name="cancelID"></param>
        /// <param name="confirmID"></param>
        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
        }
    }
}