HDL Home App 第二版本 旧平台金堂用 正在使用
chenqiyang
2022-06-22 dc0309e64f02227d8e1468b7326c07955f804612
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/ScenePictrueControl.cs
old mode 100755 new mode 100644
@@ -1,69 +1,171 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter
{
    /// <summary>
    /// 场景图片的控件
    /// </summary>
    public class ScenePictrueControl : FrameRowControl
    {
        #region ■ 初始化_____________________________
        /// <summary>
        /// 场景图片的控件(拥有桌布)
        /// </summary>
        public ScenePictrueControl()
        {
            this.UseClickStatu = false;
            this.Height = Application.GetRealHeight(420);
        }
        /// <summary>
        /// 初始化控件
        /// </summary>
        /// <param name="sceneUI">场景控件</param>
        public void InitControl(Common.SceneUI sceneUI)
        {
            //场景图片
            var btnPic = new ImageView();
            btnPic.X = Application.GetRealWidth(179);
            btnPic.Width = Application.GetRealWidth(844);
            btnPic.Height = Application.GetRealHeight(397);
            if (sceneUI.IconPathType == 0)
            {
                btnPic.ImagePath = sceneUI.IconPath;
            }
            else if (Common.Global.IsExistsByHomeId(sceneUI.IconPath) == true)
            {
                btnPic.ImageBytes = Common.Global.ReadFileByHomeId(sceneUI.IconPath);
            }
            btnPic.Radius = (uint)Application.GetRealHeight(17);
            this.AddChidren(btnPic, ChidrenBindMode.NotBind);
            //它的上面有一层阴影
            var frameBack = new FrameLayout();
            frameBack.Width = btnPic.Width;
            frameBack.Height = btnPic.Height;
            frameBack.X = btnPic.X;
            frameBack.BackgroundColor = 0x40000000;
            frameBack.Radius = (uint)Application.GetRealHeight(17);
            this.AddChidren(frameBack, ChidrenBindMode.BindEventOnly);
            var btnName = new NormalViewControl(251, 282, true);
            btnName.IsMoreLines = true;
            btnName.X = ControlCommonResourse.XXLeft;
            btnName.Y = Application.GetRealHeight(58);
            btnName.BackgroundColor = 0xd6333333;
            btnName.RadiusEx = 17;
            btnName.Text = sceneUI.Name;
            btnName.TextSize = 15;
            btnName.TextColor = UserCenterColor.Current.White;
            btnName.TextAlignment = TextAlignment.Center;
            this.AddChidren(btnName, ChidrenBindMode.BindEventOnly);
        }
        #endregion
    }
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter
{
    /// <summary>
    /// 场景图片的控件
    /// </summary>
    public class ScenePictrueControl : FrameRowControl
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 场景图片控件
        /// </summary>
        public ImageView btnScenePic = null;
        /// <summary>
        /// 场景名字控件
        /// </summary>
        public NormalViewControl btnSceneName = null;
        /// <summary>
        /// 场景对象
        /// </summary>
        public Common.SceneUI scene = null;
        /// <summary>
        /// 收藏触发的事件 true:添加收藏 false:取消收藏
        /// </summary>
        public Action<bool> CollectEvent = null;
        /// <summary>
        /// 选择控件(调用AddSelectControl()函数初始化)
        /// </summary>
        private IconViewControl btnSelect = null;
        private bool m_IsSelected = false;
        /// <summary>
        /// 选择状态
        /// </summary>
        public bool IsSelected
        {
            get { return m_IsSelected; }
            set
            {
                m_IsSelected = value;
                if (btnSelect != null) { btnSelect.IsSelected = m_IsSelected; }
            }
        }
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 场景图片的控件(拥有桌布)
        /// </summary>
        public ScenePictrueControl()
        {
            this.UseClickStatu = false;
            this.Height = Application.GetRealHeight(440);
        }
        /// <summary>
        /// 初始化控件
        /// </summary>
        /// <param name="sceneUI">场景控件</param>
        public void InitControl(Common.SceneUI sceneUI)
        {
            this.scene = sceneUI;
            //场景图片
            this.btnScenePic = new ImageView();
            btnScenePic.X = Application.GetRealWidth(179);
            btnScenePic.Width = Application.GetRealWidth(844);
            btnScenePic.Height = Application.GetRealHeight(397);
            if (sceneUI.IconPathType == 0)
            {
                btnScenePic.ImagePath = sceneUI.IconPath;
            }
            else if (Common.Global.IsExistsByHomeId(sceneUI.IconPath) == true)
            {
                btnScenePic.ImageBytes = Common.Global.ReadFileByHomeId(sceneUI.IconPath);
            }
            btnScenePic.Radius = (uint)Application.GetRealHeight(17);
            this.AddChidren(btnScenePic, ChidrenBindMode.NotBind);
            //阴影
            var btnShadow = new PicViewControl(btnScenePic.Width + Application.GetRealWidth(14 * 2), btnScenePic.Height + Application.GetRealHeight(43), false);
            btnShadow.X = btnScenePic.X - Application.GetRealWidth(14);
            btnShadow.UnSelectedImagePath = "Scene/SceneShadow.png";
            this.AddChidren(btnShadow, ChidrenBindMode.BindEvent);
            this.btnSceneName = new NormalViewControl(251, 282, true);
            btnSceneName.IsMoreLines = true;
            btnSceneName.X = ControlCommonResourse.XXLeft;
            btnSceneName.Y = Application.GetRealHeight(58);
            btnSceneName.BackgroundColor = 0xd6333333;
            btnSceneName.RadiusEx = 17;
            btnSceneName.Text = sceneUI.Name;
            btnSceneName.TextSize = 15;
            btnSceneName.TextColor = UserCenterColor.Current.White;
            btnSceneName.TextAlignment = TextAlignment.Center;
            this.AddChidren(btnSceneName, ChidrenBindMode.NotBind);
        }
        #endregion
        #region ■ 选择控件___________________________
        /// <summary>
        /// 添加选择控件
        /// </summary>
        public void AddSelectControl()
        {
            this.btnSelect = new IconViewControl(58);
            btnSelect.UnSelectedImagePath = "Item/ItemUnSelected.png";
            btnSelect.SelectedImagePath = "Item/ItemSelected.png";
            btnSelect.X = Application.GetRealWidth(887);
            btnSelect.Y = Application.GetRealHeight(35);
            this.AddChidren(btnSelect, ChidrenBindMode.BindEvent);
        }
        #endregion
        #region ■ 收藏控件___________________________
        /// <summary>
        /// 添加收藏控件(CollectEvent是收藏的回调事件)
        /// </summary>
        public void AddCollectionControl()
        {
            var btnCollection = new IconViewControl(65);
            btnCollection.X = Application.GetRealWidth(81);
            btnCollection.Y = Application.GetRealHeight(81);
            btnCollection.UnSelectedImagePath = "Item/Collection.png";
            btnCollection.SelectedImagePath = "Item/CollectionSelected.png";
            if (HdlRoomLogic.Current.IsCollectInRoom(scene) == true)
            {
                btnCollection.IsSelected = true;
            }
            this.AddChidren(btnCollection, ChidrenBindMode.NotBind);
            btnCollection.ButtonClickEvent += (sender, e) =>
            {
                btnCollection.IsSelected = !btnCollection.IsSelected;
                if (btnCollection.IsSelected == true)
                {
                    HdlSceneLogic.Current.AddLoveScene(scene);
                }
                else
                {
                    HdlSceneLogic.Current.DeleteLoveScene(scene);
                }
                this.CollectEvent?.Invoke(btnCollection.IsSelected);
            };
        }
        #endregion
        #region ■ 控件摧毁___________________________
        /// <summary>
        /// 控件摧毁
        /// </summary>
        public override void RemoveFromParent()
        {
            this.CollectEvent = null;
            base.RemoveFromParent();
        }
        #endregion
    }
}