| | |
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 子控件的Y轴坐标____________________
|
| | |
|
| | | /// <summary>
|
| | | /// 指定位置类型获取Rowlayout的子控件的Y轴坐标(请确保子控件不大于父容器)
|
| | | /// </summary>
|
| | | /// <param name="fatherCtrHeight">父控件的真实高度</param>
|
| | | /// <param name="ctrHeight">子控件的真实高度</param>
|
| | | /// <param name="alignment">位置对齐方式</param>
|
| | | /// <param name="Space">上下间的空白间距,省略时,取行控件共通变量的值。设置为-1时,不计算空白间距</param>
|
| | | /// <returns></returns>
|
| | | public int GetControlChidrenYaxis(int fatherCtrHeight, int ctrHeight, UViewAlignment alignment, int Space = 0)
|
| | | {
|
| | | if (Space < 0)
|
| | | {
|
| | | //不计算间距值
|
| | | Space = 0;
|
| | | }
|
| | |
|
| | | if (alignment == UViewAlignment.Center)
|
| | | {
|
| | | return fatherCtrHeight / 2 - ctrHeight / 2;
|
| | | }
|
| | | else if (alignment == UViewAlignment.Top)
|
| | | {
|
| | | return (fatherCtrHeight / 2 - Space / 2) / 2 - ctrHeight / 2;
|
| | | }
|
| | | else
|
| | | {
|
| | | int top = fatherCtrHeight / 2 + Space / 2;
|
| | | return top + (fatherCtrHeight - top) / 2 - ctrHeight / 2;
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 计算图片真实大小___________________
|
| | |
|
| | | /// <summary>
|
| | |
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 显示底部弹窗的房间列表_____________
|
| | |
|
| | | /// <summary>
|
| | | /// 显示底部弹窗的房间列表(当还没有房间时,会返回false)
|
| | | /// </summary>
|
| | | /// <param name="RoomKey">默认选择的房间主键</param>
|
| | | /// <param name="titleText">标题信息</param>
|
| | | /// <param name="SelectRoomEvent">确认选择房间的回调函数(房间ID,房间名(会拼上楼层))</param>
|
| | | public bool ShowBottomListRoomView(string RoomKey, string titleText, Action<string, string> SelectRoomEvent)
|
| | | {
|
| | | //楼层列表名字
|
| | | var listFloorName = new List<string>();
|
| | | //楼层列表主键
|
| | | var listFloorKeys = new List<string>();
|
| | | //房间名字
|
| | | var listRoomName = new List<List<string>>();
|
| | | //房间主键
|
| | | var listRoomKeys = new List<List<string>>();
|
| | |
|
| | | //初始化房间列表数据
|
| | | bool result = this.InitRoomListData(ref listFloorName, ref listFloorKeys, ref listRoomName, ref listRoomKeys);
|
| | | if (result == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | |
|
| | | var room = HdlRoomLogic.Current.GetRoomById(RoomKey);
|
| | | int index1 = room != null ? listFloorKeys.IndexOf(room.FloorId) : 0;
|
| | | if (index1 == -1) { index1 = 0; }
|
| | | int index2 = listRoomKeys[index1].IndexOf(RoomKey);
|
| | | if (index2 == -1) { index2 = 0; }
|
| | |
|
| | | if (listFloorKeys.Count == 0)
|
| | | {
|
| | | //无楼层模式
|
| | | PickerView.Show(listRoomName[0], (value) =>
|
| | | {
|
| | | RoomKey = listRoomKeys[0][value];
|
| | | string roomName = string.Empty;
|
| | | if (RoomKey != string.Empty)
|
| | | {
|
| | | //房间
|
| | | roomName = listRoomName[0][value];
|
| | | }
|
| | | else
|
| | | {
|
| | | roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
|
| | | }
|
| | | SelectRoomEvent?.Invoke(RoomKey, roomName);
|
| | |
|
| | | }, index2, titleText,
|
| | | Language.StringByID(R.MyInternationalizationString.uFinish),
|
| | | Language.StringByID(R.MyInternationalizationString.uCancel));
|
| | | }
|
| | | else
|
| | | {
|
| | | //有楼层模式
|
| | | PickerView.ShowSecondary(listFloorName, listRoomName, (value1, value2) =>
|
| | | {
|
| | | RoomKey = listRoomKeys[value1][value2];
|
| | | string roomName = string.Empty;
|
| | | if (RoomKey != string.Empty)
|
| | | {
|
| | | //楼层+房间
|
| | | roomName = listFloorName[value1] + " " + listRoomName[value1][value2];
|
| | | }
|
| | | else
|
| | | {
|
| | | roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
|
| | | }
|
| | | SelectRoomEvent?.Invoke(RoomKey, roomName);
|
| | |
|
| | | }, index1, index2, titleText,
|
| | | Language.StringByID(R.MyInternationalizationString.uFinish),
|
| | | Language.StringByID(R.MyInternationalizationString.uCancel));
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化房间列表数据
|
| | | /// </summary>
|
| | | /// <param name="listFloorName">楼层列表名字</param>
|
| | | /// <param name="listFloorKeys">楼层列表主键</param>
|
| | | /// <param name="listRoomName">房间名字</param>
|
| | | /// <param name="listRoomKeys">房间主键</param>
|
| | | private bool InitRoomListData(ref List<string> listFloorName, ref List<string> listFloorKeys, ref List<List<string>> listRoomName, ref List<List<string>> listRoomKeys)
|
| | | {
|
| | | var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
|
| | | if (dicFloor.Count == 0)
|
| | | {
|
| | | //第一位默认添加未分配
|
| | | var listKeys = new List<string>() { "" };
|
| | | var listName = new List<string>() { Language.StringByID(R.MyInternationalizationString.uUndistributed) };
|
| | | //房间名字和主键收集
|
| | | var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty, false);
|
| | | foreach (var myRoom in listRoom)
|
| | | {
|
| | | listName.Add(myRoom.Name);
|
| | | listKeys.Add(myRoom.Id);
|
| | | }
|
| | | listRoomName.Add(listName);
|
| | | listRoomKeys.Add(listKeys);
|
| | | }
|
| | | else
|
| | | {
|
| | | //第一位默认添加未分配(未分配放在楼层那个菜单)
|
| | | var listKeys = new List<string>() { "" };
|
| | | var listName = new List<string>() { "" };
|
| | | listRoomName.Add(listName);
|
| | | listRoomKeys.Add(listKeys);
|
| | | listFloorKeys.Add("");
|
| | | listFloorName.Add(Language.StringByID(R.MyInternationalizationString.uUndistributed));
|
| | |
|
| | | foreach (string fKeys in dicFloor.Keys)
|
| | | {
|
| | | var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(fKeys, false);
|
| | | if (listRoom.Count > 0)
|
| | | {
|
| | | //楼层名字和主键收集
|
| | | listFloorKeys.Add(fKeys);
|
| | | listFloorName.Add(dicFloor[fKeys]);
|
| | | //房间名字和主键收集
|
| | | listName = new List<string>();
|
| | | listKeys = new List<string>();
|
| | | foreach (var myRoom in listRoom)
|
| | | {
|
| | | listName.Add(myRoom.Name);
|
| | | listKeys.Add(myRoom.Id);
|
| | | }
|
| | | listRoomName.Add(listName);
|
| | | listRoomKeys.Add(listKeys);
|
| | | }
|
| | | }
|
| | | }
|
| | | //没有建立房间
|
| | | if (listFloorKeys.Count == 0 && listRoomKeys.Count == 0)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|