using System; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Threading; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { public partial class PublicAssmebly { void EditParaterEvent(Button btnConfirm, int errorId_IsNullOrEmpty, int errorId_ContainsPar, List list, EditText editText, Action callBackAction, FrameLayout contentView, Button btnLine, Button btnCancel, FrameLayout editView, Dialog dialog, int titleId) { var btnTip = new Button() { X = editView.X, Y = editView.Bottom, Width = Application.GetRealWidth(182), Height = Application.GetRealHeight(30), TextColor = CSS_Color.WarningColor, TextSize = CSS_FontSize.TextFontSize, IsMoreLines = true, TextAlignment = TextAlignment.CenterLeft, }; btnConfirm.MouseUpEventHandler += (sender, e) => { var text = editText.Text.Trim(); Regex regtest = new Regex(@"\p{Cs}"); Match match = regtest.Match(text); if (match.Success) { HDLCommon.Current.ShowAlert(Language.StringByID(StringId.CannotEnterSpecialCharacters)); return; } if (string.IsNullOrEmpty(text) || list.Contains(text)) { //if (titleId == StringId.ModifyMemberNickname) //{ // return; //} string tipMsgString = ""; if (string.IsNullOrEmpty(text)) { tipMsgString = Language.StringByID(errorId_IsNullOrEmpty); } else { tipMsgString = Language.StringByID(errorId_ContainsPar); } contentView.Height = Application.GetRealHeight(183); btnLine.Y = Application.GetRealHeight(139); btnCancel.Y = btnLine.Bottom; btnConfirm.Y = btnLine.Bottom; btnTip.Text = tipMsgString; contentView.AddChidren(btnTip); return; } callBackAction(text); dialog.Close(); }; } /// /// 加载修改参数的小弹窗 /// 保存按钮事件需要将 /// /// 回调函数 public void LoadDialog_EditParater(int titleId, string editParater, Action callBackAction, int errorId_IsNullOrEmpty, int errorId_ContainsPar, List baseList, bool encryption = false) { Dialog dialog = new Dialog() { BackgroundColor = CSS_Color.DialogTransparentColor1, }; FrameLayout contentView = new FrameLayout() { Gravity = Gravity.Center, Width = Application.GetRealWidth(270), Height = Application.GetRealHeight(172), BackgroundColor = CSS.CSS_Color.MainBackgroundColor, BorderColor = 0x00000000, BorderWidth = 0, Radius = (uint)Application.GetMinRealAverage(10), }; dialog.AddChidren(contentView); Button btnTitle = new Button() { Y = Application.GetRealHeight(10), Height = Application.GetRealHeight(42), TextColor = CSS.CSS_Color.MainColor, TextSize = CSS.CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, TextID = titleId, }; contentView.AddChidren(btnTitle); FrameLayout editView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = btnTitle.Bottom + Application.GetRealHeight(6), Width = Application.GetRealWidth(222), Height = Application.GetRealHeight(40), BackgroundColor = CSS.CSS_Color.BackgroundColor, BorderColor = 0x00000000, BorderWidth = 0, Radius = (uint)Application.GetMinRealAverage(4), }; contentView.AddChidren(editView); EditText etParater = new EditText() { X = Application.GetRealWidth(12), Width = Application.GetRealWidth(182), Text = editParater, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, //SecureTextEntry = encryption, //TextAlignment = TextAlignment.CenterLeft , }; editView.AddChidren(etParater); if(encryption) { etParater.SecureTextEntry = encryption; } Button btnClear = new Button() { X = Application.GetRealWidth(218-25), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), UnSelectedImagePath = "Public/ClearIcon.png", }; editView.AddChidren(btnClear); btnClear.MouseUpEventHandler = (sender, e) => { etParater.Text = ""; }; etParater.TextChangeEventHandler = (sender, e) => { if (etParater.Text.Length > 20) { etParater.Text = etParater.Text.Remove(20); #if __ANDROID__ etParater.SetSelectionEnd(); #endif } }; Button btnLine = new Button() { Y = Application.GetRealHeight(129), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor, }; contentView.AddChidren(btnLine); Button btnCancel = new Button() { Y = btnLine.Bottom, Width = Application.GetRealWidth(135), Height = Application.GetRealHeight(43), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.SubheadingFontSize, //SelectedTextColor = CSS_Color.MainBackgroundColor, //SelectedBackgroundColor = CSS_Color.MainColor, TextID = StringId.Cancel, }; contentView.AddChidren(btnCancel); //Button btnBottomLine = new Button() //{ // X = btnCancel.Right, // Y = btnLine.Bottom, // Height = Application.GetRealHeight(43), // Width = Application.GetRealWidth(1), // BackgroundColor = CSS_Color.DividingLineColor, //}; //contentView.AddChidren(btnBottomLine); Button btnConfirm = new Button() { X = btnCancel.Right, Y = btnLine.Y, Width = Application.GetRealWidth(137), Height = Application.GetRealHeight(43 + 1), TextAlignment = TextAlignment.Center, //TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.MainBackgroundColor, BackgroundColor = CSS_Color.MainColor, TextID = StringId.Confirm, }; contentView.AddChidren(btnConfirm); int mRectCornerID = HDLUtils.RectCornerBottomRight; btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID); dialog.Show(); btnCancel.MouseUpEventHandler += (sender, e) => { dialog.Close(); }; EditParaterEvent(btnConfirm, errorId_IsNullOrEmpty, errorId_ContainsPar, baseList, etParater, callBackAction, contentView, btnLine, btnCancel, editView, dialog, titleId); } /// /// 加载提示弹窗 /// /// /// /// public void TipOptionMsg(int titleId, int msgId, Action callBackAction) { Dialog dialog = new Dialog() { BackgroundColor = CSS_Color.DialogTransparentColor1, }; FrameLayout contentView = new FrameLayout() { Gravity = Gravity.Center, Width = Application.GetRealWidth(270), Height = Application.GetRealHeight(140), BackgroundColor = CSS.CSS_Color.MainBackgroundColor, BorderColor = 0x00000000, BorderWidth = 0, Radius = (uint)Application.GetMinRealAverage(10), }; dialog.AddChidren(contentView); Button btnTitle = new Button() { Y = Application.GetRealHeight(16), Height = Application.GetRealHeight(30), TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, TextID = titleId, }; contentView.AddChidren(btnTitle); Button btnMsg = new Button() { Gravity = Gravity.CenterHorizontal, Height = Application.GetRealHeight(25), Y = btnTitle.Bottom, Width = Application.GetRealHeight(200), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = msgId, IsMoreLines = true, }; contentView.AddChidren(btnMsg); Button btnLine = new Button() { Y = Application.GetRealHeight(96), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(270 / 2), BackgroundColor = CSS.CSS_Color.DividingLineColor, }; contentView.AddChidren(btnLine); Button btnCancel = new Button() { Y = btnLine.Bottom, Width = Application.GetRealWidth(135), Height = Application.GetRealHeight(43), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.SubheadingFontSize, //SelectedTextColor = CSS_Color.MainBackgroundColor, //SelectedBackgroundColor = CSS_Color.MainColor, TextID = StringId.Cancel, }; contentView.AddChidren(btnCancel); Button btnConfirm = new Button() { X = btnCancel.Right, Y = btnLine.Y, Width = Application.GetRealWidth(135), Height = Application.GetRealHeight(45), TextAlignment = TextAlignment.Center, //TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.SubheadingFontSize, TextColor = CSS_Color.MainBackgroundColor, BackgroundColor = CSS_Color.MainColor, TextID = StringId.Confirm, }; contentView.AddChidren(btnConfirm); //例:右下圆角 大小为50 int mRectCornerID = HDLUtils.RectCornerBottomRight; btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID); dialog.Show(); //btnCancel.MouseDownEventHandler += (sender, e) => //{ // btnCancel.IsSelected = true; //}; btnCancel.MouseUpEventHandler += (sender, e) => { //btnCancel.IsSelected = false; dialog.Close(); }; //btnConfirm.MouseDownEventHandler += (sender, e) => //{ // btnConfirm.IsSelected = true; //}; btnConfirm.MouseUpEventHandler += (sender, e) => { //btnConfirm.IsSelected = false; callBackAction(); dialog.Close(); }; } /// /// 信息提示窗口,自动关闭 /// /// /// public void TipMsgAutoClose(string msg, bool isWhite, int closeTime = 1500) { Dialog dialog = new Dialog(); FrameLayout dialogBody = new FrameLayout(); dialog.AddChidren(dialogBody); dialogBody.MouseUpEventHandler = (sender, e) => { dialog.Close(); dialog = null; }; FrameLayout frame = new FrameLayout() { X = Application.GetRealWidth(89), Y = Application.GetRealHeight(285), Width = Application.GetRealWidth(198), Height = Application.GetRealHeight(98), BackgroundColor = isWhite ? 0xE6FFFFFF : CSS_Color.DialogTransparentColor1, Radius = (uint)Application.GetRealWidth(12), }; dialog.AddChidren(frame); frame.MouseUpEventHandler = (sender, e) => { dialog.Close(); dialog = null; }; Button btnTipIcon = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = isWhite ? "Public/MsgIcon/TipIconBlack.png" : "Public/MsgIcon/TipIconWhite.png", }; frame.AddChidren(btnTipIcon); Button btnTipMsg = new Button() { Y = Application.GetRealHeight(47), Height = Application.GetRealHeight(50), TextAlignment = TextAlignment.Center, TextSize = CSS_FontSize.TextFontSize, TextColor = isWhite ? CSS_Color.FirstLevelTitleColor : CSS_Color.MainBackgroundColor, Text = msg, IsMoreLines = true, }; frame.AddChidren(btnTipMsg); dialog.Show(); new Thread(() => { Thread.Sleep(closeTime); Application.RunOnMainThread(() => { if(dialog!=null) { dialog.Close(); } }); }) { IsBackground = true }.Start(); } /// /// 加载提示弹窗 /// /// /// public void TipMsg(int titleId, int msgId,Action action = null) { Dialog dialog = new Dialog() { BackgroundColor = CSS_Color.DialogTransparentColor1, }; FrameLayout contentView = new FrameLayout() { Gravity = Gravity.Center, Width = Application.GetRealWidth(270), Height = Application.GetRealHeight(140), BackgroundColor = CSS.CSS_Color.MainBackgroundColor, BorderColor = 0x00000000, BorderWidth = 0, Radius = (uint)Application.GetMinRealAverage(10), }; dialog.AddChidren(contentView); Button btnTitle = new Button() { Y = Application.GetRealHeight(16), Height = Application.GetRealHeight(30), TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, IsBold = true, TextID = titleId, }; contentView.AddChidren(btnTitle); Button btnMsg = new Button() { Gravity = Gravity.CenterHorizontal, Height = Application.GetRealHeight(25), Y = btnTitle.Bottom, Width = Application.GetRealHeight(200), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = msgId, IsMoreLines = true, }; contentView.AddChidren(btnMsg); Button btnLine = new Button() { Y = Application.GetRealHeight(96), Height = Application.GetRealHeight(1), BackgroundColor = CSS.CSS_Color.DividingLineColor, }; contentView.AddChidren(btnLine); Button btnConfirm = new Button() { Y = btnLine.Bottom, Height = Application.GetRealHeight(43), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.SubheadingFontSize, SelectedTextColor = CSS_Color.MainBackgroundColor, SelectedBackgroundColor = CSS_Color.MainColor, TextID = StringId.Confirm, }; contentView.AddChidren(btnConfirm); dialog.Show(); btnConfirm.MouseDownEventHandler += (sender, e) => { btnConfirm.IsSelected = true; }; btnConfirm.MouseUpEventHandler += (sender, e) => { btnConfirm.IsSelected = false; action?.Invoke(); dialog.Close(); }; } /// /// 加载等待界面 /// public void LoadPage_WaitPage(Thread thread, FrameLayout bodyView, Loading waitPage) { bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); var showedTime = DateTime.Now; //如果等待事件过长,可以允许用户取消当前操作 waitPage.MouseUpEventHandler += (sender, e) => { if (showedTime.AddSeconds(30) > DateTime.Now) { thread.Abort(); waitPage.RemoveFromParent(); } }; thread.Start(); } /// /// 加载显示等待窗口 /// /// /// 返回关闭窗口Action public Action TipLoadingMsgDialog(string msg) { Dialog dialog = new Dialog() { X = Application.GetRealWidth(89), Y = Application.GetRealHeight(285), Width = Application.GetRealWidth(198), Height = Application.GetRealHeight(98), }; FrameLayout frame = new FrameLayout() { BackgroundColor = CSS_Color.DialogTransparentColor1, Radius = (uint)Application.GetRealWidth(12), }; dialog.AddChidren(frame); Button btnTipIcon = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = "Public/MsgIcon/LoadingIcon.png", }; frame.AddChidren(btnTipIcon); Button btnTipMsg = new Button() { Y = Application.GetRealHeight(47), Height = Application.GetRealHeight(50), TextAlignment = TextAlignment.Center, TextSize = CSS_FontSize.TextFontSize, TextColor = CSS_Color.MainBackgroundColor, Text = msg, }; frame.AddChidren(btnTipMsg); dialog.Show(); return new Action(() => { dialog.Close(); }); } /// /// 场景延时设置弹窗 /// /// public void SetSceneDelayDialog(Dictionaryitems, Action action,string curItemKey) { Button lastButton = new Button(); Dialog dialog = new Dialog(); var pView = new FrameLayout() { BackgroundColor = CSS_Color.DialogTransparentColor1, }; dialog.AddChidren(pView); var itemCount = items.Count; var optionBaseViewHeight = ((itemCount > 3 ? itemCount : 3) + 1) * Application.GetRealHeight(50); var optionBaseView = new FrameLayout() { //Y = Application.GetRealHeight(439), Y = Application.GetRealHeight(647) - optionBaseViewHeight, Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), //Height = Application.GetRealHeight(208), Height = optionBaseViewHeight, //AnimateSpeed = 0.3f, //Animate = Animate.DownToUp, BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(12), }; pView.AddChidren(optionBaseView); var topView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(50), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(12), }; optionBaseView.AddChidren(topView); var btnTitle = new Button() { Gravity = Gravity.CenterHorizontal, TextAlignment = TextAlignment.Center, Width = Application.GetRealWidth(100), TextID = StringId.SceneDelay, IsBold = true, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, }; topView.AddChidren(btnTitle); var btnCancel = new Button() { X = Application.GetRealWidth(21), Width = Application.GetRealWidth(100), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, TextID = StringId.Cancel, }; topView.AddChidren(btnCancel); var btnConfrim = new Button() { X = Application.GetRealWidth(160), Width = Application.GetRealWidth(160), TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, TextID = StringId.Confirm, }; topView.AddChidren(btnConfrim); var itemsView = new VerticalScrolViewLayout() { Y = topView.Bottom, Height = optionBaseViewHeight - Application.GetRealHeight(50), ScrollEnabled = itemCount > 4, }; optionBaseView.AddChidren(itemsView); bool isFrist = true; Button btnLastSelectedTip = null; foreach (var item in items) { if (isFrist) { isFrist = false; } else { itemsView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor }); } var row = new FrameLayout() { Height = Application.GetRealHeight(50), }; itemsView.AddChidren(row); var btnTipSelected = new Button() { X = Application.GetRealWidth(303), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(28), Height= Application.GetRealWidth(28), UnSelectedImagePath = "Public/ChooseIcon.png", SelectedImagePath = "Public/ChooseOnIcon.png", }; row.AddChidren(btnTipSelected); if( item.Key == curItemKey) { btnTipSelected.IsSelected = true; btnLastSelectedTip = btnTipSelected; } var btnRowTitle = new Button() { X = Application.GetRealWidth(16), Text = item.Value, TextSize = CSS_FontSize.TextFontSize, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.CenterLeft, }; row.AddChidren(btnRowTitle); btnRowTitle.MouseUpEventHandler = (sender, e) => { if (btnTipSelected.IsSelected) { curItemKey = "0"; btnTipSelected.IsSelected = false; btnLastSelectedTip = null; } else { curItemKey = item.Key; if (btnLastSelectedTip != null) { btnLastSelectedTip.IsSelected = false; } btnTipSelected.IsSelected = true; btnLastSelectedTip = btnTipSelected; } }; } //Button btn1 = new Button() //{ // Width = Application.GetRealWidth(128), // Height = Application.GetRealWidth(44), // TextAlignment = TextAlignment.Center, // TextSize = CSS_FontSize.SubheadingFontSize, // TextColor = CSS_Color.FirstLevelTitleColor, // Text = "30s", // BorderColor = CSS_Color.PromptingColor1, // BorderWidth = 1, // Radius = (uint)Application.GetRealWidth(8), // SelectedTextColor = CSS_Color.MainBackgroundColor, // SelectedBackgroundColor = CSS_Color.MainColor, // X = Application.GetRealWidth(20), // Y = Application.GetRealHeight(80), // IsSelected = curItemKey == "30" //}; //optionBaseView.AddChidren(btn1); //Button btn2 = new Button() //{ // Width = Application.GetRealWidth(128), // Height = Application.GetRealWidth(44), // TextAlignment = TextAlignment.Center, // TextSize = CSS_FontSize.SubheadingFontSize, // TextColor = CSS_Color.FirstLevelTitleColor, // Text = "1min", // BorderColor = CSS_Color.PromptingColor1, // BorderWidth = 1, // Radius = (uint)Application.GetRealWidth(8), // SelectedTextColor = CSS_Color.MainBackgroundColor, // SelectedBackgroundColor = CSS_Color.MainColor, // X = Application.GetRealWidth(195), // Y = Application.GetRealHeight(80), // IsSelected = curItemKey == "60" //}; //optionBaseView.AddChidren(btn2); //Button btn3 = new Button() //{ // Width = Application.GetRealWidth(128), // Height = Application.GetRealWidth(44), // TextAlignment = TextAlignment.Center, // TextSize = CSS_FontSize.SubheadingFontSize, // TextColor = CSS_Color.FirstLevelTitleColor, // Text = "2min", // BorderColor = CSS_Color.PromptingColor1, // BorderWidth = 1, // Radius = (uint)Application.GetRealWidth(8), // SelectedTextColor = CSS_Color.MainBackgroundColor, // SelectedBackgroundColor = CSS_Color.MainColor, // X = Application.GetRealWidth(20), // Y = Application.GetRealHeight(140), // IsSelected = curItemKey == "120" //}; //optionBaseView.AddChidren(btn3); //Button btn4 = new Button() //{ // Width = Application.GetRealWidth(128), // Height = Application.GetRealWidth(44), // TextAlignment = TextAlignment.Center, // TextSize = CSS_FontSize.SubheadingFontSize, // TextColor = CSS_Color.FirstLevelTitleColor, // Text = "5min", // BorderColor = CSS_Color.PromptingColor1, // BorderWidth = 1, // Radius = (uint)Application.GetRealWidth(8), // SelectedTextColor = CSS_Color.MainBackgroundColor, // SelectedBackgroundColor = CSS_Color.MainColor, // X = Application.GetRealWidth(195), // Y = Application.GetRealHeight(140), // IsSelected = curItemKey == "300" //}; //optionBaseView.AddChidren(btn4); dialog.Show(); pView.MouseUpEventHandler = (sender, e) => { dialog.Close(); }; btnCancel.MouseUpEventHandler = (sender, e) => { dialog.Close(); }; btnConfrim.MouseUpEventHandler = (sender, e) => { action(curItemKey); dialog.Close(); }; //btn1.MouseUpEventHandler = (sender, e) => { // btn1.IsSelected = !btn1.IsSelected; // btn2.IsSelected = false; // btn3.IsSelected = false; // btn4.IsSelected = false; // if(btn1.IsSelected) // { // curItemKey = "30"; // } // else // { // curItemKey = "0"; // } //}; //btn2.MouseUpEventHandler = (sender, e) => { // btn2.IsSelected = !btn2.IsSelected; // btn1.IsSelected = false; // btn3.IsSelected = false; // btn4.IsSelected = false; // if (btn2.IsSelected) // { // curItemKey = "60"; // } // else // { // curItemKey = "0"; // } //}; //btn3.MouseUpEventHandler = (sender, e) => { // btn3.IsSelected = !btn3.IsSelected; // btn2.IsSelected = false; // btn1.IsSelected = false; // btn4.IsSelected = false; // if (btn3.IsSelected) // { // curItemKey = "120"; // } // else // { // curItemKey = "0"; // } //}; //btn4.MouseUpEventHandler = (sender, e) => { // btn4.IsSelected = !btn4.IsSelected; // btn2.IsSelected = false; // btn3.IsSelected = false; // btn1.IsSelected = false; // if (btn4.IsSelected) // { // curItemKey = "300"; // } // else // { // curItemKey = "0"; // } //}; } } }