New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.DriverLayer; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.CSS; |
| | | using Shared; |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | public partial class VenetianBlindsPage : FrameLayout |
| | | { |
| | | |
| | | #region 控件集合 |
| | | static VenetianBlindsPage bodyView; |
| | | /// <summary> |
| | | /// 功能名称按钮 |
| | | /// </summary> |
| | | Button btnFunctionName; |
| | | /// <summary> |
| | | /// 房间楼层信息按钮 |
| | | /// </summary> |
| | | Button btnFromFoorAndRoom; |
| | | /// <summary> |
| | | /// 收藏按钮 |
| | | /// </summary> |
| | | Button btnCollection; |
| | | /// <summary> |
| | | /// 窗帘动态控件 |
| | | /// </summary> |
| | | CurtainRollSeekBarOn curtainSeekBar; |
| | | ///// <summary> |
| | | ///// 窗帘进度减少按钮 |
| | | ///// </summary> |
| | | //Button btnMinusSignIcon; |
| | | ///// <summary> |
| | | ///// 窗帘进度增加按钮 |
| | | ///// </summary> |
| | | //Button btnPlusSgnIcon; |
| | | ///// <summary> |
| | | ///// 窗帘滑动控制 |
| | | ///// </summary> |
| | | //DiyImageSeekBar controlBar; |
| | | /// <summary> |
| | | /// 窗帘关闭按钮 |
| | | /// </summary> |
| | | Button btnCurtainClose; |
| | | /// <summary> |
| | | /// 窗帘停止按钮 |
| | | /// </summary> |
| | | Button btnCurtainStop; |
| | | /// <summary> |
| | | /// 窗帘打开按钮 |
| | | /// </summary> |
| | | Button btnCurtainOpen; |
| | | /// <summary> |
| | | /// 进度值 |
| | | /// </summary> |
| | | Button btnProgress; |
| | | #endregion |
| | | |
| | | #region 区域变量 |
| | | Curtain curtainTemp = new Curtain(); |
| | | Function function; |
| | | Button btnCollection_Out; |
| | | Button btnFunctionName_Out; |
| | | Button btnFromFloor_Out; |
| | | /// <summary> |
| | | /// 刷新显示信息 |
| | | /// </summary> |
| | | Action actionRefresh; |
| | | #endregion |
| | | /// <summary> |
| | | /// 正在控制 |
| | | /// </summary> |
| | | bool onControl = false; |
| | | public VenetianBlindsPage(Function func) |
| | | { |
| | | bodyView = this; |
| | | function = func; |
| | | } |
| | | |
| | | public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut) |
| | | { |
| | | bodyView.BackgroundColor = CSS_Color.BackgroundColor; |
| | | btnCollection_Out = btnCollectionIcon; |
| | | btnFunctionName_Out = btnFunctionNameOut; |
| | | btnFromFloor_Out = btnFromFloorOut; |
| | | |
| | | |
| | | FrameLayout controlView = new FrameLayout() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(88), |
| | | Width = Application.GetRealWidth(327), |
| | | Height = Application.GetRealHeight(526), |
| | | BackgroundImagePath = "Public/Fragmentbg.png", |
| | | }; |
| | | bodyView.AddChidren(controlView); |
| | | |
| | | btnFunctionName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealHeight(14), |
| | | Width = Application.GetRealWidth(270), |
| | | Height = Application.GetRealHeight(37), |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel, |
| | | Text = function.name, |
| | | }; |
| | | controlView.AddChidren(btnFunctionName); |
| | | |
| | | btnFromFoorAndRoom = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnFunctionName.Bottom, |
| | | Width = Application.GetRealWidth(270), |
| | | Height = Application.GetRealHeight(21), |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | Text = function.GetRoomListName() |
| | | }; |
| | | controlView.AddChidren(btnFromFoorAndRoom); |
| | | |
| | | btnCollection = new Button() |
| | | { |
| | | X = Application.GetRealWidth(273), |
| | | Y = Application.GetRealHeight(14), |
| | | Width = Application.GetMinRealAverage(40), |
| | | Height = Application.GetMinRealAverage(40), |
| | | SelectedImagePath = "Collection/CollectionIcon.png", |
| | | UnSelectedImagePath = "Collection/CollectionGrayIcon.png", |
| | | IsSelected = function.collect |
| | | }; |
| | | controlView.AddChidren(btnCollection); |
| | | //2020-12-16 如果是成员隐藏收藏功能 |
| | | //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | //{ |
| | | // controlView.AddChidren(btnCollection); |
| | | //} |
| | | |
| | | |
| | | btnProgress = new Button() |
| | | { |
| | | X = Application.GetRealWidth(80), |
| | | Y = Application.GetRealHeight(80), |
| | | Width = Application.GetRealWidth(170), |
| | | Height = Application.GetRealHeight(50), |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | Text = curtainTemp.GetPercent(function).ToString() + "%", |
| | | }; |
| | | //controlView.AddChidren(btnProgress); |
| | | |
| | | curtainSeekBar = new CurtainRollSeekBarOn() |
| | | { |
| | | X = Application.GetRealWidth(40), |
| | | Y = Application.GetRealHeight(130), |
| | | Width = Application.GetRealWidth(170), |
| | | Height = Application.GetRealWidth(210), |
| | | Progress = curtainTemp.GetPercent(function), |
| | | //IsInvertedProgress = true, |
| | | ProgressTextColor = CSS_Color.WarningColor,// 0x00000000, |
| | | }; |
| | | curtainSeekBar.SetBlindsType(true); |
| | | controlView.AddChidren(curtainSeekBar); |
| | | |
| | | |
| | | |
| | | int angleValut = Convert.ToInt32(function.GetAttrState("angle")) - 90; |
| | | var angleView = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(250), |
| | | Y = Application.GetRealHeight(145), |
| | | Width = Application.GetRealWidth(40), |
| | | Height = Application.GetRealWidth(220), |
| | | BackgroundColor = 0x00ff0000 |
| | | }; |
| | | controlView.AddChidren(angleView); |
| | | |
| | | var buttons = new List<Button>(); |
| | | for (int i = 0; i < 18; i++) |
| | | { |
| | | var btn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(5), |
| | | Y = Application.GetRealHeight(8 * i + 4), |
| | | Width = Application.GetRealWidth(25), |
| | | Height = Application.GetRealHeight(3), |
| | | BackgroundColor = 0xFFDFE1E6, |
| | | }; |
| | | btn.SetRotation(angleValut); |
| | | angleView.AddChidren(btn); |
| | | buttons.Add(btn); |
| | | }; |
| | | |
| | | var btnAngle = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(8 * 17 + 14), |
| | | Height = Application.GetRealHeight(20), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | Text = function.GetAttrState("angle") + "°" |
| | | }; |
| | | angleView.AddChidren(btnAngle); |
| | | |
| | | var angleBar = new Button() { |
| | | Height = Application.GetRealHeight(8 * 18 + 14), |
| | | }; |
| | | angleView.AddChidren(angleBar); |
| | | float angle = 0; |
| | | angleBar.MouseMoveEventHandler = (sender, e) => |
| | | { |
| | | int data = angleBar.Height / 180; |
| | | int data1 = Convert.ToInt32(e.Y / data); |
| | | angle = (90 - data1); |
| | | |
| | | Console.WriteLine($"angle:: {angle}"); |
| | | if (angle > 90) |
| | | { |
| | | angle = 90; |
| | | } |
| | | else if (angle < -90) |
| | | { |
| | | angle = -90; |
| | | } |
| | | btnAngle.Text = angle + "°"; |
| | | foreach (var btn in buttons) |
| | | { |
| | | btn.SetRotation(angle); |
| | | } |
| | | if (angle == 90 || angle == -90) |
| | | { |
| | | curtainSeekBar.SetBlindsType(false); |
| | | } |
| | | else |
| | | { |
| | | curtainSeekBar.SetBlindsType(true); |
| | | } |
| | | }; |
| | | angleBar.MouseUpEventHandler = (sende, e) => |
| | | { |
| | | function.refreshTime = DateTime.Now; |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Dictionary<string, string> dic = new Dictionary<string, string>(); |
| | | dic.Add("angle", angle.ToString()); |
| | | Control.Ins.SendWriteCommand(function, dic); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }; |
| | | |
| | | |
| | | //btnMinusSignIcon = new Button() |
| | | //{ |
| | | // Y = Application.GetRealHeight(406), |
| | | // Width = Application.GetRealWidth(52), |
| | | // Height = Application.GetMinRealAverage(24), |
| | | // TextAlignment = TextAlignment.CenterRight, |
| | | // TextID = StringId.PullOpen, |
| | | // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | // TextColor = CSS_Color.PromptingColor1, |
| | | // Visible = false, |
| | | // Enable = false, |
| | | //}; |
| | | //controlView.AddChidren(btnMinusSignIcon); |
| | | |
| | | //controlBar = new DiyImageSeekBar() |
| | | //{ |
| | | // X = btnMinusSignIcon.Right, |
| | | // Y = Application.GetRealHeight(391),//414,设计数据 |
| | | // Width = Application.GetRealWidth(220), |
| | | // Height = Application.GetRealHeight(54), |
| | | // SeekBarViewHeight = Application.GetRealHeight(8), |
| | | // ThumbImagePath = "Public/ThumbImage.png", |
| | | // ThumbImageHeight = Application.GetRealHeight(54), |
| | | // ProgressBarColor = CSS_Color.MainColor, |
| | | // ProgressTextColor = CSS_Color.FirstLevelTitleColor, |
| | | // ProgressTextSize = 0x00000000, |
| | | // MaxValue = 100, |
| | | // SeekBarPadding = Application.GetRealWidth(20), |
| | | // Progress = curtainTemp.GetPercent(function), |
| | | // Visible = false, |
| | | // Enable = false, |
| | | //}; |
| | | //controlView.AddChidren(controlBar); |
| | | |
| | | //btnPlusSgnIcon = new Button() |
| | | //{ |
| | | // X = Application.GetRealWidth(286), |
| | | // Y = Application.GetRealHeight(406), |
| | | // Width = Application.GetRealWidth(62), |
| | | // Height = Application.GetRealWidth(24), |
| | | // TextID = StringId.Shut, |
| | | // TextAlignment = TextAlignment.CenterLeft, |
| | | // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | // TextColor = CSS_Color.PromptingColor1, |
| | | // Visible = false, |
| | | // Enable = false, |
| | | //}; |
| | | //controlView.AddChidren(btnPlusSgnIcon); |
| | | |
| | | btnCurtainClose = new Button() |
| | | { |
| | | X = Application.GetRealWidth(84), |
| | | Y = Application.GetRealHeight(466), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "FunctionIcon/Curtain/CurtainDownIcon.png", |
| | | SelectedImagePath = "FunctionIcon/Curtain/CurtainDownIconOn.png", |
| | | }; |
| | | controlView.AddChidren(btnCurtainClose); |
| | | |
| | | btnCurtainStop = new Button() |
| | | { |
| | | X = Application.GetRealWidth(148), |
| | | Y = Application.GetRealHeight(466), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "FunctionIcon/Curtain/CurtainStopIcon.png", |
| | | SelectedImagePath = "FunctionIcon/Curtain/CurtainStopOnIcon.png", |
| | | }; |
| | | controlView.AddChidren(btnCurtainStop); |
| | | |
| | | btnCurtainOpen = new Button() |
| | | { |
| | | X = Application.GetRealWidth(212), |
| | | Y = Application.GetRealHeight(466), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "FunctionIcon/Curtain/CurtainUpIcon.png", |
| | | SelectedImagePath = "FunctionIcon/Curtain/CurtainUpIconOn.png", |
| | | }; |
| | | controlView.AddChidren(btnCurtainOpen); |
| | | |
| | | LoadEventList(); |
| | | new TopViewDiv(bodyView, Language.StringByID(StringId.Curtain)).LoadTopView_FunctionTop(function, actionRefresh); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | DriverLayer.Control.Ins.SendReadCommand(function); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | } |
| | | } |