using System;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
using Shared;
|
|
namespace HDL_ON.UI
|
{
|
public partial class ColorTureLampPage : FrameLayout
|
{
|
|
#region 控件集合
|
static ColorTureLampPage bodyView;
|
/// <summary>
|
/// 控制界面加载区域
|
/// </summary>
|
FrameLayout controlView;
|
/// <summary>
|
/// 功能备注
|
/// </summary>
|
Button btnFunctionName;
|
/// <summary>
|
/// 功能所属楼层、房间
|
/// </summary>
|
Button btnFromFoorAndRoom;
|
/// <summary>
|
/// 收藏按钮
|
/// </summary>
|
Button btnCollection;
|
/// <summary>
|
/// 调光控件
|
/// </summary>
|
WaveSeekBarOn dimmerBar;
|
/// <summary>
|
/// 亮度显示按钮
|
/// </summary>
|
Button btnBrightnessText;
|
/// <summary>
|
/// 渐变时间修改
|
/// </summary>
|
DiyImageSeekBar barFadeTime;
|
/// <summary>
|
/// 色温的滑动控件
|
/// </summary>
|
SeekBarControl barColorTemplatrue;
|
/// <summary>
|
/// 开关按钮
|
/// </summary>
|
Button btnSwitch;
|
/// <summary>
|
/// 色温快捷方式按钮
|
/// </summary>
|
Button btnShortcut;
|
#endregion
|
|
#region 区域变量
|
Light light;
|
Button btnCollection_Out;
|
Button btnFunctionName_Out;
|
Button btnFromFloor_Out;
|
bool onDimmerBar = false;
|
/// <summary>
|
/// 刷新显示信息
|
/// </summary>
|
Action actionRefresh;
|
#endregion
|
|
public override void RemoveFromParent()
|
{
|
base.RemoveFromParent();
|
bodyView = null;
|
}
|
|
public ColorTureLampPage(Light func)
|
{
|
bodyView = this;
|
light = func;
|
}
|
|
public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
|
{
|
btnCollection_Out = btnCollectionIcon;
|
btnFunctionName_Out = btnFunctionNameOut;
|
btnFromFloor_Out = btnFromFloorOut;
|
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
|
//new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView(light,null);
|
//new PublicAssmebly().LoadTopView(bodyView, Language.StringByID(StringId.Lights), light);
|
|
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 = light.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 = light.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 = light.collect
|
};
|
//controlView.AddChidren(btnCollection);
|
//2020-12-16 如果是成员隐藏收藏功能
|
if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
|
{
|
controlView.AddChidren(btnCollection);
|
}
|
|
dimmerBar = new WaveSeekBarOn()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(74 + 16),
|
Width = Application.GetRealWidth(142 - 40),
|
Height = Application.GetRealHeight(222 - 16 - 16),
|
BorderColor = 0x00000000,
|
CornerRadius = Application.GetRealWidth(20),
|
BorderWidth = 0,
|
Progress = light.brightness,
|
IsProgressTextShow = false,
|
};
|
controlView.AddChidren(dimmerBar);
|
if (light.trait_on_off.curValue.ToString() == "on")
|
{
|
dimmerBar.SetProgressBarColors(CSS_Color.AuxiliaryColor1, CSS_Color.AuxiliaryColor1);
|
}
|
else
|
{
|
dimmerBar.SetProgressBarColors(CSS_Color.DividingLineColor, CSS_Color.DividingLineColor);
|
}
|
dimmerBar.Progress = light.brightness;
|
btnBrightnessText = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16 - 16) / 100) + Application.GetRealWidth(40),
|
Width = Application.GetRealWidth(56),
|
Height = Application.GetRealWidth(46),
|
UnSelectedImagePath = "FunctionIcon/Light/BrightnessBg.png",
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
|
Text = light.brightness + "%",
|
};
|
controlView.AddChidren(btnBrightnessText);
|
|
#region 色温
|
//色温
|
var btnTempClolor = new Button();
|
btnTempClolor.X = Application.GetRealWidth(35);
|
btnTempClolor.Y = Application.GetRealHeight(306);
|
btnTempClolor.Width = Application.GetRealWidth(224);
|
btnTempClolor.Height = Application.GetRealHeight(21);
|
btnTempClolor.TextAlignment = TextAlignment.CenterLeft;
|
btnTempClolor.TextColor = CSS_Color.FirstLevelTitleColor;
|
btnTempClolor.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
|
btnTempClolor.TextID = StringId.ColorTemperature;
|
controlView.AddChidren(btnTempClolor);
|
|
//2700K
|
var btnTempClolorMin = new Button();
|
btnTempClolorMin.Y = btnTempClolor.Bottom + Application.GetRealHeight(9);
|
btnTempClolorMin.Width = Application.GetRealWidth(54);
|
btnTempClolorMin.Height = Application.GetRealHeight(21);
|
btnTempClolorMin.Text = "2700K";
|
btnTempClolorMin.TextAlignment = TextAlignment.CenterRight;
|
btnTempClolorMin.TextColor = CSS_Color.PromptingColor1;
|
btnTempClolorMin.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
|
controlView.AddChidren(btnTempClolorMin);
|
|
//滑动条的背景图片
|
var btnColorTemplatrueBack = new Button();
|
//需要减掉滑动条的左右间距
|
btnColorTemplatrueBack.Width = Application.GetRealWidth(210 - 20 * 2);
|
btnColorTemplatrueBack.Height = Application.GetRealHeight(8);
|
btnColorTemplatrueBack.Gravity = Gravity.CenterHorizontal;
|
btnColorTemplatrueBack.UnSelectedImagePath = "FunctionIcon/Light/ColorTemperatureBar.png";
|
controlView.AddChidren(btnColorTemplatrueBack);
|
//滑动条控件
|
barColorTemplatrue = new SeekBarControl();
|
barColorTemplatrue.X = btnTempClolorMin.Right;
|
barColorTemplatrue.Y = Application.GetRealHeight(340);
|
barColorTemplatrue.MinValue = 27;
|
barColorTemplatrue.MaxValue = 65;
|
barColorTemplatrue.ProgressBarColor = 0x00000000;//全部透明
|
barColorTemplatrue.ProgressBarUnEnableColor = 0x00000000;
|
barColorTemplatrue.SeekBarBackgroundColor = 0x00000000;
|
controlView.AddChidren(barColorTemplatrue);
|
barColorTemplatrue.Y = btnTempClolorMin.Y - (barColorTemplatrue.Height - btnTempClolorMin.Height) / 2;
|
//显示上方的Txt
|
barColorTemplatrue.ShowCustomTextView(Application.GetRealWidth(50), CSS_FontSize.PromptFontSize_FirstLevel, CSS_Color.FirstLevelTitleColor);
|
//设置初始值
|
barColorTemplatrue.SetCustomText(barColorTemplatrue.Progress * 100 + "K");
|
|
//变更背景图的Y轴坐标
|
btnColorTemplatrueBack.Y = barColorTemplatrue.Y + (barColorTemplatrue.Height - btnColorTemplatrueBack.Height) / 2;
|
|
//6500K
|
var btnTempClolorMax = new Button();
|
btnTempClolorMax.Y = btnTempClolorMin.Y;
|
btnTempClolorMax.X = barColorTemplatrue.Right;
|
btnTempClolorMax.Width = Application.GetRealWidth(54);
|
btnTempClolorMax.Height = Application.GetRealHeight(21);
|
btnTempClolorMax.Text = "6500K";
|
btnTempClolorMax.TextAlignment = TextAlignment.CenterLeft;
|
btnTempClolorMax.TextColor = CSS_Color.PromptingColor1;
|
btnTempClolorMax.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
|
controlView.AddChidren(btnTempClolorMax);
|
|
#endregion
|
|
#region 渐变时间调节
|
var btnGradualChangeText = new Button()
|
{
|
X = Application.GetRealWidth(35),
|
Y = Application.GetRealHeight(385),
|
Width = Application.GetRealWidth(224),
|
Height = Application.GetRealHeight(21),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
TextID = StringId.SpeedOfChange,
|
};
|
controlView.AddChidren(btnGradualChangeText);
|
|
var btnGradualChangeMinValuesText = new Button()
|
{
|
X = Application.GetRealWidth(35),
|
Y = btnGradualChangeText.Bottom + Application.GetRealHeight(8),
|
Width = Application.GetRealWidth(22),
|
Height = Application.GetRealHeight(21),
|
Text = "0s",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
controlView.AddChidren(btnGradualChangeMinValuesText);
|
|
barFadeTime = new DiyImageSeekBar()
|
{
|
X = btnGradualChangeMinValuesText.Right,
|
Y = Application.GetRealHeight(412 - 21) + Application.GetRealHeight(8),
|
Width = Application.GetRealWidth(210),
|
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 = CSS_FontSize.PromptFontSize_FirstLevel,
|
ProgressBarUnitSring = "s",
|
MaxValue = 10,
|
Progress = light.fadeTime,
|
SeekBarPadding = Application.GetRealWidth(20),
|
};
|
controlView.AddChidren(barFadeTime);
|
|
var btnGradualChangeMaxValuesText = new Button()
|
{
|
X = barFadeTime.Right,
|
Y = btnGradualChangeText.Bottom + Application.GetRealHeight(8),
|
Width = Application.GetRealWidth(35),
|
Height = Application.GetRealHeight(21),
|
Text = "10s",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
controlView.AddChidren(btnGradualChangeMaxValuesText);
|
#endregion
|
|
btnSwitch = new Button()
|
{
|
X = Application.GetRealWidth(184),
|
Y = Application.GetRealHeight(462),
|
Width = Application.GetRealWidth(40),
|
Height = Application.GetRealWidth(40),
|
UnSelectedImagePath = "Public/PowerClose.png",
|
SelectedImagePath = "Public/PowerOpen.png",
|
IsSelected = light.trait_on_off.curValue.ToString() == "on",
|
};
|
controlView.AddChidren(btnSwitch);
|
|
//色温的快捷方式图标
|
btnShortcut = new Button();
|
btnShortcut.X = Application.GetRealWidth(104);
|
btnShortcut.Y = btnSwitch.Y;
|
btnShortcut.Width = Application.GetRealWidth(40);
|
btnShortcut.Height = Application.GetRealWidth(40);
|
btnShortcut.UnSelectedImagePath = "FunctionIcon/Light/ColorTemperatrueQuick.png";
|
controlView.AddChidren(btnShortcut);
|
btnShortcut.MouseUpEventHandler += (sender, e) =>
|
{
|
//显示色温的快捷方式的弹窗
|
this.ShowColorTemperatrueShortcutView();
|
};
|
|
LoadEventList();
|
|
new TopViewDiv(bodyView, Language.StringByID(StringId.Lights)).LoadTopView_FunctionTop(light, actionRefresh);
|
new System.Threading.Thread(() =>
|
{
|
DriverLayer.Control.Ins.SendReadCommand(light);
|
})
|
{ IsBackground = true }.Start();
|
}
|
|
/// <summary>
|
/// 显示色温的快捷方式的弹窗
|
/// </summary>
|
private void ShowColorTemperatrueShortcutView()
|
{
|
//整个灰色界面
|
var frameBack = new Dialog();
|
|
var dialogBody = new FrameLayout();
|
frameBack.AddChidren(dialogBody);
|
dialogBody.MouseUpEventHandler = (sender, e) => {
|
frameBack.Close();
|
};
|
|
frameBack.Show();
|
|
//白色的背景(用图片整的)
|
var frameWhite = new FrameLayout();
|
frameWhite.X = Application.GetRealWidth(63);
|
frameWhite.Y = Application.GetRealHeight(350);
|
frameWhite.Width = Application.GetRealWidth(160);
|
frameWhite.Height = Application.GetRealHeight(199);
|
frameWhite.BackgroundImagePath = "FunctionIcon/Light/ColorTemperatrueQuickBack.png";
|
frameBack.AddChidren(frameWhite);
|
|
//快捷调节
|
var btnAdjust = new Button();
|
btnAdjust.X = Application.GetRealWidth(24);
|
btnAdjust.Y = Application.GetRealHeight(19);
|
btnAdjust.Width = Application.GetRealWidth(80);
|
btnAdjust.Height = Application.GetRealHeight(24);
|
btnAdjust.TextID = StringId.QuickAdjustment;
|
btnAdjust.TextColor = CSS_Color.FirstLevelTitleColor;
|
btnAdjust.TextSize = CSS_FontSize.SubheadingFontSize;
|
frameWhite.AddChidren(btnAdjust);
|
//线
|
var btnLine = new Button();
|
btnLine.Y = btnAdjust.Bottom + Application.GetRealHeight(9);
|
btnLine.Height = 1;
|
btnLine.Width = Application.GetRealWidth(112);
|
btnLine.Gravity = Gravity.CenterHorizontal;
|
btnLine.BackgroundColor = CSS_Color.BackgroundColor;
|
frameWhite.AddChidren(btnLine);
|
|
//温馨图标
|
var btnCozyIcon = new Button();
|
btnCozyIcon.X = Application.GetRealWidth(24);
|
btnCozyIcon.Y = btnLine.Bottom + Application.GetRealHeight(10);
|
btnCozyIcon.Width = Application.GetRealWidth(24);
|
btnCozyIcon.Height = Application.GetRealWidth(24);
|
btnCozyIcon.UnSelectedImagePath = "FunctionIcon/Light/CozyIcon.png";
|
btnCozyIcon.SelectedImagePath = "FunctionIcon/Light/CozyIconOn.png";
|
frameWhite.AddChidren(btnCozyIcon);
|
btnCozyIcon.MouseUpEventHandler += (sender, e) =>
|
{
|
barColorTemplatrue.Progress = 27;
|
light.Attr_CCT.curValue = barColorTemplatrue.Progress * 100;
|
barColorTemplatrue.SetCustomText(light.Attr_CCT.curValue + "K");
|
frameBack.Close();
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add(FunctionAttributeKey.CCT, light.Attr_CCT.curValue.ToString());
|
DriverLayer.Control.Ins.SendWriteCommand(light, d);
|
};
|
//温馨 2700k
|
var btnCozy = new Button();
|
btnCozy.X = btnCozyIcon.Right + Application.GetRealWidth(12);
|
btnCozy.Y = btnCozyIcon.Y;
|
btnCozy.Width = Application.GetRealWidth(100);
|
btnCozy.Height = Application.GetRealWidth(24);
|
btnCozy.Text = Language.StringByID(StringId.Cozy) + " 2700K";
|
btnCozy.TextSize = CSS_FontSize.TextFontSize;
|
btnCozy.TextColor = CSS_Color.FirstLevelTitleColor;
|
btnCozy.SelectedTextColor = CSS_Color.MainColor;
|
btnCozy.TextAlignment = TextAlignment.CenterLeft;
|
frameWhite.AddChidren(btnCozy);
|
btnCozy.MouseUpEventHandler += (sender, e) =>
|
{
|
barColorTemplatrue.Progress = 27;
|
light.Attr_CCT.curValue = barColorTemplatrue.Progress * 100;
|
barColorTemplatrue.SetCustomText(light.Attr_CCT.curValue + "K");
|
frameBack.Close();
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add(FunctionAttributeKey.CCT, light.Attr_CCT.curValue.ToString());
|
DriverLayer.Control.Ins.SendWriteCommand(light, d); barColorTemplatrue.Progress = 27;
|
barColorTemplatrue.SetCustomText(barColorTemplatrue.Progress * 100 + "K");
|
frameBack.Close();
|
};
|
|
//会客图标
|
var btnMeetIcon = new Button();
|
btnMeetIcon.X = Application.GetRealWidth(24);
|
btnMeetIcon.Y = btnCozyIcon.Bottom + Application.GetRealHeight(20);
|
btnMeetIcon.Width = Application.GetRealWidth(24);
|
btnMeetIcon.Height = Application.GetRealWidth(24);
|
btnMeetIcon.UnSelectedImagePath = "FunctionIcon/Light/MeetingGuestsIcon.png";
|
btnMeetIcon.SelectedImagePath = "FunctionIcon/Light/MeetingGuestsIconOn.png";
|
frameWhite.AddChidren(btnMeetIcon);
|
btnMeetIcon.MouseUpEventHandler += (sender, e) =>
|
{
|
barColorTemplatrue.Progress = 30;
|
light.Attr_CCT.curValue = barColorTemplatrue.Progress * 100;
|
barColorTemplatrue.SetCustomText(light.Attr_CCT.curValue + "K");
|
frameBack.Close();
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add(FunctionAttributeKey.CCT, light.Attr_CCT.curValue.ToString());
|
DriverLayer.Control.Ins.SendWriteCommand(light, d);
|
};
|
|
//会客 3000k
|
var btnMeet = new Button();
|
btnMeet.X = btnMeetIcon.Right + Application.GetRealWidth(12);
|
btnMeet.Y = btnMeetIcon.Y;
|
btnMeet.Width = Application.GetRealWidth(100);
|
btnMeet.Height = Application.GetRealWidth(24);
|
btnMeet.Text = Language.StringByID(StringId.MeetingGuests) + " 3000K";
|
btnMeet.TextSize = CSS_FontSize.TextFontSize;
|
btnMeet.TextColor = CSS_Color.FirstLevelTitleColor;
|
btnMeet.SelectedTextColor = CSS_Color.MainColor;
|
btnMeet.TextAlignment = TextAlignment.CenterLeft;
|
frameWhite.AddChidren(btnMeet);
|
btnMeet.MouseUpEventHandler += (sender, e) =>
|
{
|
barColorTemplatrue.Progress = 30;
|
light.Attr_CCT.curValue = barColorTemplatrue.Progress * 100;
|
barColorTemplatrue.SetCustomText(light.Attr_CCT.curValue + "K");
|
frameBack.Close();
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add(FunctionAttributeKey.CCT, light.Attr_CCT.curValue.ToString());
|
DriverLayer.Control.Ins.SendWriteCommand(light, d);
|
};
|
|
//阅读图标
|
var btnReadIcon = new Button();
|
btnReadIcon.X = Application.GetRealWidth(24);
|
btnReadIcon.Y = btnMeetIcon.Bottom + Application.GetRealHeight(20);
|
btnReadIcon.Width = Application.GetRealWidth(24);
|
btnReadIcon.Height = Application.GetRealWidth(24);
|
btnReadIcon.UnSelectedImagePath = "FunctionIcon/Light/ReadIcon.png";
|
btnReadIcon.SelectedImagePath = "FunctionIcon/Light/ReadIconOn.png";
|
frameWhite.AddChidren(btnReadIcon);
|
btnReadIcon.MouseUpEventHandler += (sender, e) =>
|
{
|
barColorTemplatrue.Progress = 65;
|
light.Attr_CCT.curValue = barColorTemplatrue.Progress * 100;
|
barColorTemplatrue.SetCustomText(light.Attr_CCT.curValue + "K");
|
frameBack.Close();
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add(FunctionAttributeKey.CCT, light.Attr_CCT.curValue.ToString());
|
DriverLayer.Control.Ins.SendWriteCommand(light, d);
|
};
|
//阅读 6500k
|
var btnRead = new Button();
|
btnRead.X = btnReadIcon.Right + Application.GetRealWidth(12);
|
btnRead.Y = btnReadIcon.Y;
|
btnRead.Width = Application.GetRealWidth(100);
|
btnRead.Height = Application.GetRealWidth(24);
|
btnRead.Text = Language.StringByID(StringId.Reading) + " 6500K";
|
btnRead.TextSize = CSS_FontSize.TextFontSize;
|
btnRead.TextColor = CSS_Color.FirstLevelTitleColor;
|
btnRead.SelectedTextColor = CSS_Color.MainColor;
|
btnRead.TextAlignment = TextAlignment.CenterLeft;
|
frameWhite.AddChidren(btnRead);
|
btnRead.MouseUpEventHandler += (sender, e) =>
|
{
|
barColorTemplatrue.Progress = 65;
|
light.Attr_CCT.curValue = barColorTemplatrue.Progress * 100;
|
barColorTemplatrue.SetCustomText(light.Attr_CCT.curValue + "K");
|
frameBack.Close();
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add(FunctionAttributeKey.CCT, light.Attr_CCT.curValue.ToString());
|
DriverLayer.Control.Ins.SendWriteCommand(light, d);
|
};
|
btnCozy.IsSelected = false;
|
btnCozyIcon.IsSelected = false;
|
btnMeet.IsSelected = false;
|
btnMeetIcon.IsSelected = false;
|
btnRead.IsSelected = false;
|
btnReadIcon.IsSelected = false;
|
if (light.Attr_CCT.curValue.ToString() == "2700")
|
{
|
btnCozy.IsSelected = true;
|
btnCozyIcon.IsSelected = true;
|
}
|
if (light.Attr_CCT.curValue.ToString() == "3000")
|
{
|
btnMeet.IsSelected = true;
|
btnMeetIcon.IsSelected = true;
|
}
|
if (light.Attr_CCT.curValue.ToString() == "6500")
|
{
|
btnRead.IsSelected = true;
|
btnReadIcon.IsSelected = true;
|
}
|
}
|
|
/// <summary>
|
/// 左右滑动的进度条控件
|
/// </summary>
|
private class SeekBarControl : DiyImageSeekBar
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 进度值改变,如果要设置初始进度值,此变量要在设置初始进度值之前进行设置(第一个参数0:滑动的时候,1:手指弹起的时候)
|
/// </summary>
|
public Action<int, int> ProgressChangedEvent = null;
|
/// <summary>
|
/// 进度条可用时的背景色
|
/// </summary>
|
private uint ProgressBarEnableColor = 0;
|
/// <summary>
|
/// 进度条不可用时的背景色(默认灰色)
|
/// </summary>
|
public uint ProgressBarUnEnableColor = 0xffe8e8e8;
|
/// <summary>
|
/// 当前可用状态
|
/// </summary>
|
private bool nowEnable = true;
|
/// <summary>
|
/// 控件能否使用
|
/// </summary>
|
public new bool Enable
|
{
|
set
|
{
|
//状态没有改变
|
if (nowEnable == value) { return; }
|
nowEnable = value;
|
|
this.IsClickable = value;
|
if (value == true)
|
{
|
//原来的颜色
|
base.ProgressBarColor = ProgressBarEnableColor;
|
}
|
else
|
{
|
//灰色
|
base.ProgressBarColor = ProgressBarUnEnableColor;
|
}
|
}
|
}
|
|
/// <summary>
|
/// 进度条颜色
|
/// </summary>
|
public new uint ProgressBarColor
|
{
|
set
|
{
|
ProgressBarEnableColor = value;
|
base.ProgressBarColor = value;
|
}
|
}
|
|
private int m_SeekBarPadding = Application.GetRealWidth(20);
|
/// <summary>
|
/// 进度条与左右两边的边框的边距(重写底层属性)
|
/// </summary>
|
public new int SeekBarPadding
|
{
|
set
|
{
|
m_SeekBarPadding = value;
|
base.SeekBarPadding = value;
|
}
|
}
|
|
private int m_MaxValue = 0;
|
/// <summary>
|
/// 进度条最大值(重写底层属性)
|
/// </summary>
|
public new int MaxValue
|
{
|
set
|
{
|
m_MaxValue = value;
|
base.MaxValue = value;
|
}
|
}
|
|
private int m_MinValue = 0;
|
/// <summary>
|
/// 进度条最小值(重写底层属性)
|
/// </summary>
|
public new int MinValue
|
{
|
set
|
{
|
m_MinValue = value;
|
base.MinValue = value;
|
}
|
}
|
/// <summary>
|
/// 上方显示的文本
|
/// </summary>
|
private Button btnTopView = null;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 左右滑动的进度条控件
|
/// </summary>
|
/// <param name="i_width">宽度,非真实值</param>
|
public SeekBarControl(int i_width = 210)
|
{
|
this.Width = Application.GetRealWidth(i_width);
|
this.Height = Application.GetRealHeight(54);
|
//圆球的宽度
|
this.ThumbImageHeight = Application.GetRealHeight(54);
|
this.ThumbImagePath = "Public/ThumbImage.png";
|
//进度条的宽度
|
this.SeekBarViewHeight = Application.GetRealHeight(8);
|
//上方是否显示文本
|
this.IsProgressTextShow = false;
|
this.Gravity = Gravity.CenterHorizontal;
|
//进度条颜色
|
this.ProgressBarColor = CSS_Color.MainColor;
|
//左右边距
|
this.SeekBarPadding = Application.GetRealWidth(20);
|
|
//进度条值改变事件
|
this.OnProgressChangedEvent += this.MyProgressChangedEvent;
|
//手指弹起事件
|
this.OnStopTrackingTouchEvent += this.MyStopTrackingTouchEvent;
|
}
|
|
#endregion
|
|
#region ■ 事件_______________________________
|
|
/// <summary>
|
/// 进度条值改变事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="value"></param>
|
private void MyProgressChangedEvent(object sender, int value)
|
{
|
if (this.ProgressChangedEvent == null)
|
{
|
this.OnProgressChangedEvent -= this.MyProgressChangedEvent;
|
return;
|
}
|
|
this.ProgressChangedEvent(0, value);
|
}
|
|
/// <summary>
|
/// 手指弹起事件
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="value"></param>
|
private void MyStopTrackingTouchEvent(object sender, int value)
|
{
|
if (this.ProgressChangedEvent == null)
|
{
|
this.OnStopTrackingTouchEvent -= this.MyStopTrackingTouchEvent;
|
return;
|
}
|
//弹起事件不需要判断时间
|
this.ProgressChangedEvent(1, value);
|
}
|
|
#endregion
|
|
#region ■ 自定义上方显示文本_________________
|
|
/// <summary>
|
/// 在上方显示自定义文本
|
/// </summary>
|
/// <param name="i_width">宽度(真实值)</param>
|
/// <param name="textSize">文字大小</param>
|
/// <param name="textColor">文字颜色</param>
|
public void ShowCustomTextView(int i_width, int textSize, uint textColor)
|
{
|
if (this.btnTopView != null) { return; }
|
|
int contrHeight = Application.GetRealHeight(24);
|
this.btnTopView = new Button();
|
btnTopView.Width = i_width;
|
btnTopView.Height = contrHeight;
|
btnTopView.TextColor = textColor;
|
btnTopView.TextSize = textSize;
|
btnTopView.TextAlignment = TextAlignment.Center;
|
btnTopView.Y = this.Y - contrHeight + Application.GetRealHeight(20);
|
//初始化时,X轴可以不用理会
|
|
this.Parent.AddChidren(btnTopView);
|
}
|
|
/// <summary>
|
/// 设置自定义文本信息
|
/// </summary>
|
/// <param name="i_text"></param>
|
public void SetCustomText(string i_text)
|
{
|
if (this.btnTopView == null) { return; }
|
|
this.btnTopView.Text = i_text;
|
//滑条最左边的距离
|
int XX = this.X + this.m_SeekBarPadding;
|
//当前滑条所在的大致百分比
|
int tempValue = this.Progress - this.m_MinValue;
|
if (tempValue < 0) { tempValue = 0; }
|
decimal persent = (decimal)tempValue / (this.m_MaxValue - this.m_MinValue);
|
//当前滑条所在的大致位置
|
XX += (int)((this.Width - this.m_SeekBarPadding * 2) * persent);
|
//因为要居中,所以减掉自定义控件的宽度的一般
|
XX = XX - this.btnTopView.Width / 2;
|
|
this.btnTopView.X = XX;
|
}
|
|
#endregion
|
|
#region ■ 一般方法___________________________
|
|
/// <summary>
|
/// 控件摧毁
|
/// </summary>
|
public override void RemoveFromParent()
|
{
|
this.ProgressChangedEvent = null;
|
base.RemoveFromParent();
|
}
|
|
#endregion
|
}
|
}
|
}
|