using System; using System.Collections.Generic; using Shared.Common; namespace Shared.Phone.Category { public class SelectFloorForm : UserCenter.FrameLayoutBase { public Action FloorAction; /// /// 当前传过来的floorid /// public string CurFloorId = string.Empty; Dialog dialogBackground; /// /// Init /// public void Init(int x, int y, Device.CommonForm.Direction direction = Device.CommonForm.Direction.Left) { dialogBackground = new Dialog { BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor }; dialogBackground.Show(); var dialog = new FrameLayout() { }; dialogBackground.AddChidren(dialog); dialog.MouseUpEventHandler += (sender, e) => { RemoveView(); }; var bg = new Button { X = Application.GetRealWidth(x), Y = Application.GetRealHeight(y), Width = this.GetPictrueRealSize(449), Height = this.GetPictrueRealSize(773), UnSelectedImagePath = "Floor/SelectFloor_Left_4.png" }; dialog.AddChidren(bg); var backgroundFL = new FrameLayout { X = Application.GetRealWidth(x), Y = Application.GetRealHeight(y + 23), Width = this.GetPictrueRealSize(449), Height = this.GetPictrueRealSize(773 - 23) }; dialog.AddChidren(backgroundFL); var tip = new Button { X = Application.GetRealWidth(80), Width = this.GetPictrueRealSize(350), Height = this.GetPictrueRealSize(150), TextColor = ZigbeeColor.Current.GXCTextBlackColor, TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.SelectFloor, TextSize = 14, IsBold = true }; backgroundFL.AddChidren(tip); var floorLayout = new VerticalScrolViewLayout { Y = tip.Bottom, Width = this.GetPictrueRealSize(449), Height = this.GetPictrueRealSize(600), VerticalScrollBarEnabled = false }; backgroundFL.AddChidren(floorLayout); var dicFloor = UserCenter.HdlRoomLogic.Current.GetFloorSortList(); int floorCount = dicFloor.Count; if (floorCount > 0) { string directStr = string.Empty; if (direction == Device.CommonForm.Direction.Right) { directStr = "Right"; } else { directStr = "Left"; } if (floorCount > 5) { bg.UnSelectedImagePath = $"Floor/SelectFloor_{directStr}_5.png"; bg.Height = this.GetPictrueRealSize(150*6+23); backgroundFL.Height = this.GetPictrueRealSize(150 * 6); floorLayout.Height = this.GetPictrueRealSize(150 * 5); } else { bg.UnSelectedImagePath = $"Floor/SelectFloor_{directStr}_{floorCount}.png"; bg.Height = this.GetPictrueRealSize(150 * (floorCount + 1)+23); backgroundFL.Height = this.GetPictrueRealSize(150 * (floorCount + 1)); floorLayout.Height = this.GetPictrueRealSize(150 * floorCount); } foreach (var floor in dicFloor.Keys) { AddFloor(floorLayout, floor, dicFloor[floor]); } } } /// /// AddFloor /// /// private void AddFloor(VerticalScrolViewLayout verticalScrolView, string floorId, string floorName) { var frow = new Device.CommonForm.LeftIconButtonRow(449, 150); frow.Width = this.GetPictrueRealSize(449); frow.Height = this.GetPictrueRealSize(150); frow.Init("Floor/Floor.png", "Floor/FloorSelected.png", floorName); verticalScrolView.AddChidren(frow); frow.IsSelected = floorId == this.CurFloorId; frow.ButtonClickEvent += (sender, e) => { RemoveView(); FloorAction?.Invoke(floorId); }; } /// /// RemoveView /// private void RemoveView() { dialogBackground.Close(); RemoveFromParent(); } } }