using System; using System.Collections.Generic; namespace Shared.Phone.UserCenter.UserMain { /// /// 个人中心主画面 /// public class UserMainForm : EditorCommonForm { #region ■ 变量声明___________________________ /// /// 主菜单背景框 /// private NormalFrameLayout frameMainMenuBack = null; /// /// 其他菜单的容器控件 /// private FrameListControl frameOtherMenuContr = null; /// /// 用户名字 /// private NormalViewControl btnUserName = null; /// /// 用户身份 /// private NormalViewControl btnAuthority = null; /// /// 用户头像 /// private ImageView btnUserIcon = null; /// /// 皇冠 /// private IconViewControl btnImperialCrown = null; /// /// 信息提示控件 /// private MessageManagementControl msgControl = null; #endregion #region ■ 初始化_____________________________ /// /// 画面显示(底层会固定调用此方法,借以完成画面创建), /// 注意:因为外面的框架问题,在外面不能使用底层的方法 /// 不然,可能会有些共通参数出错 /// public void ShowForm() { this.FormID = "UserMainForm"; //特殊处理:恢复可关闭进度条,别问为什么,我也不知道为什么,以防万一而已 ProgressBar.SetCloseBarFlag(false); //初始化头部控件 this.InitTopFrameLayout(); //初始化中部控件 this.InitBodyFrameLayout(); //移除返回键 base.RemoveBackButton(); //body占完整个屏幕,除了底部菜单 bodyFrameLayout.Y = 0; bodyFrameLayout.Height = this.Height; bodyFrameLayout.BackgroundColor = UserCenterColor.Current.BlackBackGround; //初始化中部控件 this.InitMiddleFrame(); } /// /// 初始化中部控件 /// private void InitMiddleFrame() { //清空bodyFrame this.ClearBodyFrame(); //个人中心 var btnTitle = new NormalViewControl(350, 100, true); btnTitle.X = ControlCommonResourse.XXLeft; btnTitle.Y = Application.GetRealHeight(112); btnTitle.TextColor = UserCenterColor.Current.White; btnTitle.TextSize = 24; btnTitle.IsBold = true; btnTitle.TextID = R.MyInternationalizationString.UserCenter; bodyFrameLayout.AddChidren(btnTitle); var btnBack1 = new PicViewControl(1031, 942); btnBack1.Y = btnTitle.Bottom - Application.GetRealHeight(10); btnBack1.UnSelectedImagePath = "Center/MainBack1.png"; bodyFrameLayout.AddChidren(btnBack1); var btnBack2 = new PicViewControl(392, 172); btnBack2.X = Application.GetRealWidth(688); btnBack2.UnSelectedImagePath = "Center/MainBack2.png"; bodyFrameLayout.AddChidren(btnBack2); //信息提示控件 this.msgControl = new MessageManagementControl(); msgControl.Y = Application.GetRealHeight(127); msgControl.X = Application.GetRealWidth(953); bodyFrameLayout.AddChidren(this.msgControl); //白框 var frameBack = new FrameLayout(); frameBack.BackgroundColor = UserCenterColor.Current.BodyFrameLayout; frameBack.Y = Application.GetRealHeight(380); frameBack.Gravity = Gravity.CenterHorizontal; frameBack.Radius = (uint)Application.GetRealHeight(29); frameBack.Width = bodyFrameLayout.Width - Application.GetRealWidth(29 * 2); frameBack.Height = bodyFrameLayout.Height - Application.GetRealHeight(380) + Application.GetRealHeight(100); bodyFrameLayout.AddChidren(frameBack); //初始化个人信息的控件 this.InitUserInfoControl(frameBack); //初始化主菜单的控件 this.InitMainMenuInfoControl(frameBack); //初始化其他菜单 this.InitOtherMenuControl(frameBack); } #endregion #region ■ 个人信息的控件_____________________ /// /// 初始化个人信息的控件 /// /// 背景 private void InitUserInfoControl(FrameLayout frameWhite) { //用户头像 this.btnUserIcon = new ImageView(); btnUserIcon.Height = this.GetPictrueRealSize(280); btnUserIcon.Width = this.GetPictrueRealSize(280); btnUserIcon.Radius = (uint)this.GetPictrueRealSize(280) / 2; btnUserIcon.X = Application.GetRealWidth(121); if (Common.Config.Instance.Home.IsVirtually == false) { btnUserIcon.ImageBytes = Shared.IO.FileUtils.ReadFile(UserCenterResourse.UserInfo.UserIconFile); } else { btnUserIcon.ImagePath = "Account/Cat.png"; } bodyFrameLayout.AddChidren(btnUserIcon); btnUserIcon.Y = frameWhite.Y - Application.GetRealHeight(109); btnUserIcon.MouseUpEventHandler += (sender, e) => { if (Common.Config.Instance.Home.IsVirtually == true) { //如果住宅为虚拟住宅,则直接提示:确定退出当前账号? string msg = Language.StringByID(R.MyInternationalizationString.uLogoutAccountMsg); this.ShowMassage(ShowMsgType.Confirm, msg, () => { //退出账号 UserCenterLogic.ReLoginAgain(Common.Config.Instance.Account); }); return; } var form = new UserInformationForm(); form.AddForm(); }; //皇冠 this.btnImperialCrown = new IconViewControl(60); btnImperialCrown.X = Application.GetRealWidth(346); btnImperialCrown.Y = Application.GetRealHeight(475); btnImperialCrown.UnSelectedImagePath = "Center/ImperialCrown.png"; bodyFrameLayout.AddChidren(btnImperialCrown); if (UserCenterResourse.UserInfo.AuthorityNo != 1) { btnImperialCrown.Visible = false; } //用户昵称 this.btnUserName = new NormalViewControl(605, 60, true); btnUserName.IsBold = true; btnUserName.X = btnUserIcon.Right + Application.GetRealWidth(5); btnUserName.Y = Application.GetRealHeight(43); if (UserCenterResourse.UserInfo != null) { btnUserName.Text = UserCenterResourse.UserInfo.UserName; } frameWhite.AddChidren(btnUserName); //用户身份 this.btnAuthority = new NormalViewControl(605, 60, true); btnAuthority.X = btnUserName.X; btnAuthority.Y = btnUserName.Bottom; btnAuthority.TextColor = UserCenterColor.Current.TextGrayColor3; btnAuthority.TextSize = 12; if (UserCenterResourse.UserInfo != null) { btnAuthority.Text = UserCenterResourse.UserInfo.AuthorityText; } frameWhite.AddChidren(btnAuthority); } #endregion #region ■ 主菜单的控件_______________________ /// /// 初始化主菜单的控件 /// /// 背景 private void InitMainMenuInfoControl(FrameLayout frameWhite) { if (frameMainMenuBack != null) { frameMainMenuBack.RemoveAll(); } else { //背景框 frameMainMenuBack = new NormalFrameLayout(); frameMainMenuBack.Y = Application.GetRealHeight(288); frameMainMenuBack.Gravity = Gravity.CenterHorizontal; frameMainMenuBack.Height = Application.GetRealHeight(371); frameMainMenuBack.Width = frameWhite.Width - Application.GetRealWidth(29 * 2); frameMainMenuBack.Radius = (uint)Application.GetRealHeight(17); frameMainMenuBack.BackgroundColor = UserCenterColor.Current.White; frameWhite.AddChidren(frameMainMenuBack); } //标题:管理 var frameTitle = new FrameLayout(); frameTitle.Y = Application.GetRealHeight(6); frameTitle.Width = Application.GetRealWidth(907); frameTitle.Height = Application.GetRealHeight(121); frameTitle.Gravity = Gravity.CenterHorizontal; frameMainMenuBack.AddChidren(frameTitle); var btnTitle = new NormalViewControl(500, 60, true); btnTitle.Gravity = Gravity.CenterVertical; btnTitle.TextID = R.MyInternationalizationString.uManagement; frameTitle.AddChidren(btnTitle); var btnLine = new NormalViewControl(frameTitle.Width, 1, false); btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine; btnLine.Y = frameTitle.Height - 1; frameTitle.AddChidren(btnLine); //创建全部的主菜单控件 this.CreatAllMainMenuControl(frameMainMenuBack); } /// /// 创建全部的主菜单控件 /// /// private void CreatAllMainMenuControl(FrameLayout frameBack) { var frameMenu = new FrameLayout(); frameMenu.Y = Application.GetRealHeight(184); frameMenu.Height = Application.GetRealHeight(153); frameBack.AddChidren(frameMenu); //成员管理 string unSelectPic = "Center/MenberManagement.png"; int TextID = R.MyInternationalizationString.uMember; if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2) { //生成控件 var frame = this.CreatMainMenuControl(frameMenu, TextID, unSelectPic); frame.ButtonClickEvent += (sender, e) => { if (Common.Config.Instance.Home.IsVirtually == true) { //如果住宅为虚拟住宅,则此功能无效 return; } var form = new Member.MemberListForm(); form.AddForm(); }; } //设备管理 unSelectPic = "Center/DeviceManagement.png"; TextID = R.MyInternationalizationString.uDevice; if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2) { //生成控件 var frame = this.CreatMainMenuControl(frameMenu, TextID, unSelectPic); frame.ButtonClickEvent += (sender, e) => { HdlGatewayLogic.Current.RefreshAppOldSelectGatewayId(); //拥有网关,或者是虚拟住宅,则进入设备列表界面 if (string.IsNullOrEmpty(GatewayResourse.AppOldSelectGatewayId) == false || Common.Config.Instance.Home.IsVirtually == true) { var form = new Device.DeviceListMainForm(); form.AddForm(); } else { //没有网关,则进入网关列表界面 var form = new GatewayManage.GatewayListForm(); form.AddForm(); } }; } //住宅管理 unSelectPic = "Center/ResidenceManagement.png"; TextID = R.MyInternationalizationString.uResidence; if (1 == 1)//统一格式好看一点而已 { //生成控件 var frame = this.CreatMainMenuControl(frameMenu, TextID, unSelectPic); frame.ButtonClickEvent += (sender, e) => { //住宅接口不需要特殊的登陆Token var form = new Residence.ResidenceListForm(); form.AddForm(); }; } //安防管理 unSelectPic = "Center/SafetyManagement.png"; TextID = R.MyInternationalizationString.uSafety; //这个账号拥有网关的情况下,才显示这个菜单 if (HdlGatewayLogic.Current.GetAllLocalGateway().Count > 0) { //生成控件 var frame = this.CreatMainMenuControl(frameMenu, TextID, unSelectPic); frame.ButtonClickEvent += (sender, e) => { if (Common.Config.Instance.Home.IsVirtually == true) { //如果住宅为虚拟住宅,则此功能无效 return; } var form = new Safety.SafetyManagementMainForm(); form.AddForm(); }; } //重新让它居中 frameMenu.Gravity = Gravity.CenterHorizontal; } /// /// 创建一个主菜单控件 /// /// 背景框 /// 显示文本 /// 图片对象 /// private FrameRowControl CreatMainMenuControl(FrameLayout frameBack, int textId, string UnSelectPic) { int width = 236; //外框 var frame = new FrameRowControl(); frame.Width = Application.GetRealWidth(width); frame.Height = frameBack.Height; frame.Gravity = Gravity.CenterVertical; frame.X = frameBack.ChildrenCount * Application.GetRealWidth(width); frameBack.AddChidren(frame); frame.RemoveBaseClickEvent(); //变更大小 frameBack.Width = frameBack.ChildrenCount * Application.GetRealWidth(width); //图标 var btnIcon = new IconViewControl(81); btnIcon.Gravity = Gravity.CenterHorizontal; btnIcon.UnSelectedImagePath = UnSelectPic; frame.AddChidren(btnIcon); //文字 var btnText = new NormalViewControl(frame.Width, Application.GetRealHeight(72), false); btnText.TextSize = 12; btnText.Y = btnIcon.Bottom; btnText.TextAlignment = TextAlignment.Center; btnText.TextID = textId; frame.AddChidren(btnText); return frame; } #endregion #region ■ 初始化其他菜单_____________________ /// /// 初始化其他菜单 /// /// 背景 private void InitOtherMenuControl(FrameLayout frameWhite) { if (this.frameOtherMenuContr != null) { frameOtherMenuContr.RemoveAll(); } else { frameOtherMenuContr = new FrameListControl(26); frameOtherMenuContr.Y = Application.GetRealHeight(698); frameOtherMenuContr.Height = ControlCommonResourse.ListViewRowHeight * 4 + Application.GetRealHeight(26 * 4); frameWhite.AddChidren(frameOtherMenuContr); } if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2) { //数据备份 var rowback = new FrameRowControl(frameOtherMenuContr.rowSpace / 2); frameOtherMenuContr.AddChidren(rowback); //向右图标 var btnBackRight = rowback.AddRightArrow(); btnBackRight.X -= ControlCommonResourse.XXLeft / 2; //图标 var btnBackIcon = rowback.AddLeftIcon(); btnBackIcon.X -= ControlCommonResourse.XXLeft / 2; btnBackIcon.UnSelectedImagePath = "Center/Backup.png"; //底线 var btnBackLine = rowback.AddBottomLine(); btnBackLine.X -= ControlCommonResourse.XXLeft / 2; //数据备份View var btnBackView = rowback.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uDataBackup), 300); btnBackView.X -= ControlCommonResourse.XXLeft / 2; rowback.ButtonClickEvent += (sender, e) => { if (Common.Config.Instance.Home.IsVirtually == true) { //如果住宅为虚拟住宅,则此功能无效 return; } var form = new HdlBackup.HdlBackupListForm(); form.AddForm(); }; } //意见反馈 var rowSuggestion = new FrameRowControl(frameOtherMenuContr.rowSpace / 2); frameOtherMenuContr.AddChidren(rowSuggestion); //向右图标 var btnSuRight = rowSuggestion.AddRightArrow(); btnSuRight.X -= ControlCommonResourse.XXLeft / 2; //图标 var btnSuggestionIcon = rowSuggestion.AddLeftIcon(); btnSuggestionIcon.X -= ControlCommonResourse.XXLeft / 2; btnSuggestionIcon.UnSelectedImagePath = "Center/Opinion.png"; //底线 var btnSuLine = rowSuggestion.AddBottomLine(); btnSuLine.X -= ControlCommonResourse.XXLeft / 2; //意见反馈View var btnSuView = rowSuggestion.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.Suggestions), 300); btnSuView.X -= ControlCommonResourse.XXLeft / 2; rowSuggestion.ButtonClickEvent += (sender, e) => { var form = new Suggestion.FeedbackForm(); form.AddForm(); }; //关于我们 var rowAbount = new FrameRowControl(frameOtherMenuContr.rowSpace / 2); frameOtherMenuContr.AddChidren(rowAbount); //向右图标 var btnAbountRight = rowAbount.AddRightArrow(); btnAbountRight.X -= ControlCommonResourse.XXLeft / 2; //图标 var btnAbountIcon = rowAbount.AddLeftIcon(); btnAbountIcon.X -= ControlCommonResourse.XXLeft / 2; btnAbountIcon.UnSelectedImagePath = "Center/Abount.png"; //底线 var btnAbountLine = rowAbount.AddBottomLine(); btnAbountLine.X -= ControlCommonResourse.XXLeft / 2; //关于我们View var btnAbountView = rowAbount.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAboutMe), 300); btnAbountView.X -= ControlCommonResourse.XXLeft / 2; rowAbount.ButtonClickEvent += (sender, e) => { if (Common.Config.Instance.Home.IsVirtually == true) { //如果住宅为虚拟住宅,则此功能无效 return; } var form = new Abount.AbountForm(); form.AddForm(); }; if (UserCenterResourse.HideOption.CenterHideMenu == 1) { //隐匿菜单 var rowHide = new FrameRowControl(frameOtherMenuContr.rowSpace / 2); frameOtherMenuContr.AddChidren(rowHide); //向右图标 var btnHideRight = rowHide.AddRightArrow(); btnHideRight.X -= ControlCommonResourse.XXLeft / 2; //图标 var btnHideIcon = rowHide.AddLeftIcon(); btnHideIcon.X -= ControlCommonResourse.XXLeft / 2; btnHideIcon.UnSelectedImagePath = "Center/Abount.png"; //底线 var btnHideLine = rowHide.AddBottomLine(); btnHideLine.X -= ControlCommonResourse.XXLeft / 2; //隐匿菜单View var btnHideView = rowHide.AddLeftCaption("隐匿菜单", 300); btnHideView.X -= ControlCommonResourse.XXLeft / 2; rowHide.ButtonClickEvent += (sender, e) => { var from = new HideOption.HideOptionMainForm(); from.AddForm(); }; } } #endregion #region ■ 界面重新激活事件___________________ /// /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件 /// public override int FormActionAgainEvent() { //虚拟住宅不需要刷新 if (Common.Config.Instance.Home.IsVirtually == true) { return -1; } //用户头像 if (UserCenterResourse.UserInfo.UserIconFileChanged == true) { UserCenterResourse.UserInfo.UserIconFileChanged = false; btnUserIcon.ImageBytes = Shared.IO.FileUtils.ReadFile(UserCenterResourse.UserInfo.UserIconFile); } //用户名字 btnUserName.Text = UserCenterResourse.UserInfo.UserName; if (UserCenterResourse.UserInfo != null) { //用户身份 btnAuthority.Text = UserCenterResourse.UserInfo.AuthorityText; } //皇冠 if (UserCenterResourse.UserInfo.AuthorityNo != 1) { this.btnImperialCrown.Visible = false; } else { this.btnImperialCrown.Visible = true; } //刷新信息提示控件 this.msgControl?.RefreshStatu(); //初始化主菜单的控件 this.InitMainMenuInfoControl(null); //初始化其他菜单的控件 this.InitOtherMenuControl(null); return 1; } #endregion } }