using System; using Shared; using HDL_ON.Entity; using HDL_ON.UI.CSS; namespace HDL_ON.UI { public partial class ACPage : FrameLayout { #region 控件集合 static ACPage bodyView; /// /// 功能名称按钮 /// Button btnFunctionName; /// /// 房间楼层信息按钮 /// Button btnFromFoorAndRoom; /// /// 收藏按钮 /// Button btnCollection; /// /// 空调温度控制控件 /// DiyArcSeekBar arcBar; /// /// 减号按钮 /// Button btnMinus; /// /// 加号按钮 /// Button btnPlus; /// /// 温度按钮 /// Button btnTemp; Button btnTempUint; /// /// 室内温度按钮 /// Button btnIndoorTemp; /// /// 模式按钮 /// Button btnMode; /// /// 风俗按钮 /// Button btnWindSpeed; /// /// 电源按钮 /// Button btnSwitch; /// /// 修改模式信息区域 /// //FrameLayout modeChangeView; /// /// 修改风速信息区域 /// //FrameLayout fanChangeView; #endregion #region 区域变量 AC aC; Button btnCollection_Out; Button btnFunctionName_Out; Button btnFromFloor_Out; /// /// 刷新显示信息 /// Action actionRefresh; #endregion public ACPage(AC func) { bodyView = this; aC = 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 = aC.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 = aC.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 = aC.collection }; controlView.AddChidren(btnCollection); arcBar = new DiyArcSeekBar() { #if __IOS__ Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(120+25), Width = Application.GetRealWidth(260-40), Height = Application.GetRealWidth(260-40), OpenAngle = 160, ThumbImagePath = aC.trait_on_off.value.ToString() == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png", ThumbImageHeight = Application.GetRealWidth(50), ProgressBarColor = aC.trait_on_off.value.ToString() == "on"? CSS_Color.MainColor :CSS_Color.PromptingColor2, MinValue = 16, MaxValue = 38, Progress = Convert.ToInt32( aC.trait_temp.value), IsClickable = aC.trait_on_off.value.ToString() == "on" , ArcColor = CSS_Color.BackgroundColor, SeekBarPadding = Application.GetRealWidth(8), #else Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(120 + 40), Width = Application.GetRealWidth(260 - 40), Height = Application.GetRealWidth(260 - 40), OpenAngle = 160, ThumbImagePath = aC.trait_on_off.value.ToString() == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png", ThumbImageHeight = Application.GetRealWidth(50), ProgressBarColor = aC.trait_on_off.value.ToString() == "on" ? CSS_Color.MainColor : CSS_Color.PromptingColor2, MinValue = 16, MaxValue = 38, Progress = Convert.ToInt32( aC.trait_temp.value), IsClickable = aC.trait_on_off.value.ToString() == "on", ArcColor = CSS_Color.BackgroundColor, SeekBarPadding = Application.GetRealWidth(7), #endif }; controlView.AddChidren(arcBar); btnTemp = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(206), Width = Application.GetRealWidth(71), Height = Application.GetRealWidth(60), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = 50, IsBold = true, Text = aC.trait_temp.value.ToString(), TextAlignment = TextAlignment.Center, }; controlView.AddChidren(btnTemp); btnTempUint = new Button() { X = btnTemp.Right, Y = btnTemp.Y, Width = Application.GetRealWidth(30), Height = Application.GetRealHeight(30), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, IsBold = true, TextAlignment = TextAlignment.CenterLeft, Text = "°C", }; controlView.AddChidren(btnTempUint); btnIndoorTemp = new Button() { Gravity = Gravity.CenterHorizontal, Y = btnTemp.Bottom, Width = Application.GetRealWidth(100), Height = Application.GetRealHeight(20), Text = Language.StringByID(StringId.IndoorTemp) + "20°C", TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; controlView.AddChidren(btnIndoorTemp); btnMinus = new Button() { X = Application.GetRealWidth(21), Y = Application.GetRealHeight(263), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = "Public/MinusSignIcon.png", }; controlView.AddChidren(btnMinus); btnPlus = new Button() { X = Application.GetRealWidth(275), Y = Application.GetRealHeight(263), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = "Public/PlusSignIcon.png", }; controlView.AddChidren(btnPlus); btnMode = new Button() { X = Application.GetRealWidth(60), Y = Application.GetRealHeight(334), Width = Application.GetRealWidth(30), Height = Application.GetRealWidth(30), UnSelectedImagePath = aC.curModeImage, }; controlView.AddChidren(btnMode); btnWindSpeed = new Button() { X = Application.GetRealWidth(235), Y = Application.GetRealHeight(337), Width = Application.GetRealWidth(30), Height = Application.GetRealWidth(30), UnSelectedImagePath = aC.curFanImage, }; controlView.AddChidren(btnWindSpeed); btnSwitch = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(462), Width = Application.GetRealWidth(40), Height = Application.GetRealWidth(40), UnSelectedImagePath = "Public/PowerClose.png", SelectedImagePath = "Public/PowerOpen.png", IsSelected = aC.trait_on_off.value.ToString() == "on" }; controlView.AddChidren(btnSwitch); LoadEventList(); new TopViewDiv(bodyView,aC.name).LoadTopView(aC, actionRefresh); } /// /// 加载修改模式区域 /// void LoadDiv_ChangeModeView() { Dialog dialog = new Dialog(); FrameLayout dialogView = new FrameLayout() { BackgroundColor = CSS_Color.DialogTransparentColor1, }; dialog.AddChidren(dialogView); FrameLayout modeChangeView; modeChangeView = new FrameLayout() { X = Application.GetRealWidth(30), Y = Application.GetRealHeight(128), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(287), BackgroundImagePath = "FunctionIcon/AC/DivBg1.png", Animate = Animate.DownToUp, AnimateSpeed = 0.3f }; dialogView.AddChidren(modeChangeView); Button btnTitle; btnTitle = new Button() { X = Application.GetRealWidth(8+16), Y = Application.GetRealHeight(8), Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(44), TextID = StringId.ChooseMode, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, }; modeChangeView.AddChidren(btnTitle); Button btnLine = new Button() { X = btnTitle.X, Y = btnTitle.Bottom, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }; modeChangeView.AddChidren(btnLine); foreach(var m in aC.trait_mode.value_key) { Button btnModeIcon = new Button() { X = btnTitle.X, Y = Application.GetRealHeight(44 * (aC.trait_mode.value_key.IndexOf(m) + 1) + 10 + 8), Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), IsSelected = aC.trait_mode.value == m, }; modeChangeView.AddChidren(btnModeIcon); Button btnModeText = new Button() { X = Application.GetRealWidth(12) + btnModeIcon.Right, Y = Application.GetRealHeight(44 * (aC.trait_mode.value_key.IndexOf(m) + 1) + 8), Height = Application.GetRealHeight(44), Width = Application.GetRealWidth(70), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, IsSelected = aC.trait_mode.value == m, TextSize = CSS_FontSize.TextFontSize, }; modeChangeView.AddChidren(btnModeText); switch (m) { case "auto": btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/AutoIconGray.png"; btnModeIcon.SelectedImagePath = "FunctionIcon/AC/AutoIcon.png"; btnModeText.TextID = StringId.Auto; break; case "cool": btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/CoolIconGray.png"; btnModeIcon.SelectedImagePath = "FunctionIcon/AC/CoolIcon.png"; btnModeText.TextID = StringId.Cool; break; case "heat": btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/HeatingIconGray.png"; btnModeIcon.SelectedImagePath = "FunctionIcon/AC/HeatingIcon.png"; btnModeText.TextID = StringId.Heat; break; case "dry": btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/DehumidificationIconGray.png"; btnModeIcon.SelectedImagePath = "FunctionIcon/AC/DehumidificationIcon.png"; btnModeText.TextID = StringId.Dry; break; case "fan": btnModeIcon.UnSelectedImagePath = "FunctionIcon/AC/AirSupplyIconGray.png"; btnModeIcon.SelectedImagePath = "FunctionIcon/AC/AirSupplyIcon.png"; btnModeText.TextID = StringId.AirSupply; break; } if(aC.trait_mode.value_key.IndexOf(m) < aC.trait_mode.value_key.Count-1) { modeChangeView.AddChidren(new Button() { X = btnTitle.X, Y = btnModeText.Bottom , Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }); } LoadEvent_ChangeMode(dialog, dialogView, btnModeIcon, btnModeText,m); } dialogView.MouseUpEventHandler = (sender, e) => { dialog.Close(); }; dialog.Show(); } /// /// 加载修改模式区域 /// void LoadDiv_ChangeFanView() { Dialog dialog = new Dialog(); FrameLayout dialogView = new FrameLayout() { BackgroundColor = CSS_Color.DialogTransparentColor1, }; dialog.AddChidren(dialogView); FrameLayout modeChangeView; modeChangeView = new FrameLayout() { X = Application.GetRealWidth(185), Y = Application.GetRealHeight(172), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(243), AnimateSpeed = 0.3f, BackgroundImagePath = "FunctionIcon/AC/DivBg2.png", Animate = Animate.DownToUp, }; dialogView.AddChidren(modeChangeView); Button btnTitle; btnTitle = new Button() { X = Application.GetRealWidth(8 + 16), Y = Application.GetRealHeight(8), Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(44), TextID = StringId.ChooseFan, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.EmphasisFontSize_Secondary, }; modeChangeView.AddChidren(btnTitle); Button btnLine = new Button() { X = btnTitle.X, Y = btnTitle.Bottom, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }; modeChangeView.AddChidren(btnLine); foreach (var m in aC.trait_fan.value_key) { Button btnFanIcon = new Button() { X = btnTitle.X, Y = Application.GetRealHeight(44 * (aC.trait_fan.value_key.IndexOf(m) + 1) + 10 + 8), Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), IsSelected = aC.trait_fan.value.ToString() == m, }; modeChangeView.AddChidren(btnFanIcon); Button btnFanText = new Button() { X = Application.GetRealWidth(12) + btnFanIcon.Right, Y = Application.GetRealHeight(44 * (aC.trait_fan.value_key.IndexOf(m) + 1) + 8), Height = Application.GetRealHeight(44), Width = Application.GetRealWidth(70), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, IsSelected = aC.trait_fan.value.ToString() == m, TextSize = CSS_FontSize.TextFontSize, }; modeChangeView.AddChidren(btnFanText); switch (m) { case "high": btnFanIcon.UnSelectedImagePath = "FunctionIcon/AC/WindHighIconGray.png"; btnFanIcon.SelectedImagePath = "FunctionIcon/AC/WindHighIcon.png"; btnFanText.TextID = StringId.HighWindSpeed; break; case "medium": btnFanIcon.UnSelectedImagePath = "FunctionIcon/AC/WindMediumIconGray.png"; btnFanIcon.SelectedImagePath = "FunctionIcon/AC/WindMediumIcon.png"; btnFanText.TextID = StringId.MiddleWindSpeed; break; case "low": btnFanIcon.UnSelectedImagePath = "FunctionIcon/AC/WindLowIconGray.png"; btnFanIcon.SelectedImagePath = "FunctionIcon/AC/WindLowIcon.png"; btnFanText.TextID = StringId.LowWindSpeed; break; case "auto": btnFanIcon.UnSelectedImagePath = "FunctionIcon/AC/AutoIconGray.png"; btnFanIcon.SelectedImagePath = "FunctionIcon/AC/AutoIcon.png"; btnFanText.TextID = StringId.Auto; break; } if (aC.trait_fan.value_key.IndexOf(m) < aC.trait_fan.value_key.Count - 1) { modeChangeView.AddChidren(new Button() { X = btnTitle.X, Y = btnFanText.Bottom, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.BackgroundColor, }); } LoadEvent_ChangeFan(dialog, dialogView, btnFanIcon, btnFanText,m); } dialog.Show(); } } }