using System; using System.Text; namespace Shared.Phone.UserCenter { /// /// 显示一个信息框 /// public class ShowMsgControl { #region ■ 变量声明___________________________ /// /// 点击确认的事件 /// public Action ConfirmClickEvent = null; /// /// 点击取消的事件 /// public Action CancelClickEvent = null; /// /// 信息类型 /// private ShowMsgType msgType = ShowMsgType.Confirm; /// /// 消息 /// private string msgText = string.Empty; /// /// 确认按钮的文本 /// private string buttonOkText = null; /// /// 取消按钮的文本 /// private string buttonCancelText = null; /// /// 提示控件 /// private Tip myTip = null; #endregion #region ■ 初始化_____________________________ /// /// 显示一个需要确认的信息框 /// /// 信息类型 /// 信息 /// 确认按钮的文本 /// 取消按钮的文本 public ShowMsgControl(ShowMsgType i_msgType, string i_msg, string i_buttonOkText = null, string i_buttonCancelText = null) { //确认按钮文本 this.buttonOkText = i_buttonOkText == null ? Language.StringByID(R.MyInternationalizationString.OkMsg) : i_buttonOkText; this.buttonCancelText = i_buttonCancelText == null ? Language.StringByID(R.MyInternationalizationString.uCancel) : i_buttonCancelText; this.msgType = i_msgType; this.msgText = i_msg; if (i_msgType == ShowMsgType.Tip) { myTip = new Tip(); myTip.Direction = AMPopTipDirection.None; myTip.CloseTime = 2; myTip.Text = i_msg; } } #endregion #region ■ 显示消息___________________________ /// /// 显示 /// public void Show() { try { if (myTip != null) { myTip.Show(Common.CommonPage.Instance); myTip = null; return; } //初始化控件 this.InitMsgControl(); } catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex); } } #endregion #region ■ 初始化控件_________________________ /// /// 初始化控件 /// private void InitMsgControl() { //主控件 var frameMain = new FrameLayout(); frameMain.BackgroundColor = UserCenterColor.Current.DialogBackColor; Common.CommonPage.Instance.AddChidren(frameMain); frameMain.MouseUpEventHandler += (sender, e) => { //移除界面 frameMain.RemoveFromParent(); this.ConfirmClickEvent = null; }; //白色背景框 var frameBack = new FrameLayout(); frameBack.Height = Application.GetRealHeight(478); frameBack.Width = Application.GetRealWidth(792); frameBack.BackgroundColor = UserCenterColor.Current.White; frameBack.Y = Application.GetRealHeight(706); frameBack.Gravity = Gravity.CenterHorizontal; frameBack.Radius = (uint)Application.GetRealHeight(17); frameMain.AddChidren(frameBack); //标题 var btnTitle = new NormalViewControl(frameBack.Width, Application.GetRealHeight(65), false); btnTitle.Y = Application.GetRealHeight(68); btnTitle.TextColor = 0xff333443; btnTitle.TextAlignment = TextAlignment.Center; btnTitle.TextSize = 16; frameBack.AddChidren(btnTitle); if (msgType == ShowMsgType.Normal) { btnTitle.TextID = R.MyInternationalizationString.NormalTip; } else if (msgType == ShowMsgType.Error) { btnTitle.TextID = R.MyInternationalizationString.ErrorTip; } else if (msgType == ShowMsgType.Confirm) { btnTitle.TextID = R.MyInternationalizationString.NormalTip; } else if (msgType == ShowMsgType.Remind) { btnTitle.TextID = R.MyInternationalizationString.uRemind; } //消息 var btnMsg = new NormalViewControl(frameBack.Width - Application.GetRealWidth(55 * 2), Application.GetRealHeight(180), false); btnMsg.Y = Application.GetRealHeight(141); btnMsg.IsMoreLines = true; btnMsg.TextAlignment = TextAlignment.Center; btnMsg.TextColor = UserCenterColor.Current.TextGrayColor1; btnMsg.Gravity = Gravity.CenterHorizontal; btnMsg.Text = msgText; frameBack.AddChidren(btnMsg); if (msgType == ShowMsgType.Confirm) { //初始化确认类型的底部按钮 this.InitBottomConfirmButton(frameMain, frameBack); } else { //初始化普通类型的底部按钮 this.InitBottomNormalButton(frameMain, frameBack); } } /// /// 初始化确认类型的底部按钮 /// /// /// private void InitBottomConfirmButton(FrameLayout frameMain, FrameLayout frameBack) { //取消按钮 var btnCancel = new BottomLeftClickButton(Application.GetRealWidth(396), Application.GetRealHeight(127)); frameBack.AddChidren(btnCancel); btnCancel.InitControl(this.buttonCancelText); btnCancel.ButtonClickEvent += (sender, e) => { //移除界面 frameMain.RemoveFromParent(); //回调函数 this.CancelClickEvent?.Invoke(); this.ConfirmClickEvent = null; this.CancelClickEvent = null; }; //确定按钮 var btnConfirm = new BottomRightClickButton(frameBack.Width - btnCancel.Width, btnCancel.Height); frameBack.AddChidren(btnConfirm); btnConfirm.InitControl(this.buttonOkText); btnConfirm.ButtonClickEvent += (sender, e) => { //移除界面 frameMain.RemoveFromParent(); //回调函数 this.ConfirmClickEvent?.Invoke(); this.ConfirmClickEvent = null; this.CancelClickEvent = null; }; } /// /// 初始化普通类型的底部按钮 /// /// /// private void InitBottomNormalButton(FrameLayout frameMain, FrameLayout frameBack) { #if Android //确认 var frameConfirm = new FrameLayoutStatuControl(); frameConfirm.Height = Application.GetRealHeight(127); frameConfirm.Width = frameBack.Width; frameConfirm.Gravity = Gravity.BottomCenter; frameConfirm.RadiusEx = 17; frameConfirm.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor; frameBack.AddChidren(frameConfirm); //把上圆角覆盖为方角 var btnTopTemp2 = new NormalViewControl(frameConfirm.Width, Application.GetRealHeight(35), false); btnTopTemp2.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor; frameConfirm.AddChidren(btnTopTemp2, ChidrenBindMode.BindEvent); //确认按钮 var btnConfirm = new NormalViewControl(frameConfirm.Width - Application.GetRealWidth(10), Application.GetRealHeight(60), false); btnConfirm.Gravity = Gravity.Center; btnConfirm.TextColor = UserCenterColor.Current.White; btnConfirm.Text = buttonOkText; btnConfirm.TextAlignment = TextAlignment.Center; frameConfirm.AddChidren(btnConfirm, ChidrenBindMode.BindEvent); frameConfirm.ButtonClickEvent += (sender, e) => { //移除界面 frameMain.RemoveFromParent(); //回调函数 this.ConfirmClickEvent?.Invoke(); this.ConfirmClickEvent = null; }; //重写控件点击状态 frameConfirm.SelectStatuEvent += (statu) => { if (statu == true) { frameConfirm.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor; btnTopTemp2.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor; btnConfirm.BackgroundColor = UserCenterColor.Current.ButtonClickStatuColor; } else { frameConfirm.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor; btnTopTemp2.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor; btnConfirm.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor; } }; #endif #if iOS //确认按钮 var btnConfirm = new NormalClickButton(frameBack.Width, Application.GetRealHeight(127), false); btnConfirm.Gravity = Gravity.BottomCenter; btnConfirm.TextColor = UserCenterColor.Current.White; btnConfirm.Text = buttonOkText; btnConfirm.TextAlignment = TextAlignment.Center; btnConfirm.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor; btnConfirm.oldBackgroundColor = UserCenterColor.Current.ClickButtonDefultColor; frameBack.AddChidren(btnConfirm); btnConfirm.ButtonClickEvent += (sender, e) => { //移除界面 frameMain.RemoveFromParent(); //回调函数 this.ConfirmClickEvent?.Invoke(); this.ConfirmClickEvent = null; }; #endif } #endregion } }