using System; using System.Text; namespace Shared.Phone.UserCenter { /// /// 显示一个信息框 /// public class ShowMsgControl { #region ■ 变量声明___________________________ /// /// 点击确认的事件 /// public Action ConfirmClickEvent = null; /// /// 信息类型 /// private ShowMsgType msgType = ShowMsgType.Confirm; /// /// 消息 /// private string msgText = string.Empty; /// /// 确认按钮的文本 /// private string buttonOkText = null; /// /// 提示控件 /// private Tip myTip = null; #endregion #region ■ 初始化_____________________________ /// /// 显示一个需要确认的信息框 /// /// 信息类型 /// 信息 /// 确认按钮的文本 public ShowMsgControl(ShowMsgType i_msgType, string i_msg, string buttonText = null) { //确认按钮文本 this.buttonOkText = buttonText == null ? Language.StringByID(R.MyInternationalizationString.OkMsg) : buttonText; 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() { if (myTip != null) { myTip.Show(Common.CommonPage.Instance); myTip = null; return; } //初始化控件 this.InitMsgControl(); } #endregion #region ■ 初始化控件_________________________ /// /// 初始化控件 /// private void InitMsgControl() { //添加界面 var nowForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1); if (nowForm == null || (nowForm is ViewGroup) == false) { return; } //主控件 var frameMain = new FrameLayout(); frameMain.BackgroundColor = UserCenterColor.Current.DialogBackColor; ((ViewGroup)nowForm).AddChidren(frameMain); //白色背景框 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; } //消息 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(Language.StringByID(R.MyInternationalizationString.uCancel)); btnCancel.ButtonClickEvent += (sender, e) => { //移除界面 frameMain.RemoveFromParent(); this.ConfirmClickEvent = null; }; //确定按钮 var btnConfirm = new BottomRightClickButton(frameBack.Width - btnCancel.Width, btnCancel.Height); frameBack.AddChidren(btnConfirm); btnConfirm.InitControl(buttonOkText); btnConfirm.ButtonClickEvent += (sender, e) => { //移除界面 frameMain.RemoveFromParent(); //回调函数 this.ConfirmClickEvent?.Invoke(); this.ConfirmClickEvent = null; }; } /// /// 初始化普通类型的底部按钮 /// /// /// private void InitBottomNormalButton(FrameLayout frameMain, FrameLayout frameBack) { #if Android //确认 var frameConfirm = new FrameLayoutControl(); 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.BindEventOnly); //确认按钮 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.BindEventOnly); 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 } }