xm
2019-07-16 b910cb79c9b5bcc204022a3cf9e6950f0a64dfbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Shared.Phone.UserCenter
{
    /// <summary>
    /// 做成一个房间选择的行控件
    /// </summary>
    public class RoomSelectRow : StatuRowLayout
    {
        /// <summary>
        /// 是否处于选择状态
        /// </summary>
        public bool IsSelected
        {
            get
            {
                return Statu == StatuMode.SELECT;
            }
            set
            {
                if (value == true)
                {
                    this.SetSelectStatu();
                }
                else
                {
                    if (SelectCancel == true)
                    {
                        this.SetUnselectStatu();
                    }
                }
            }
        }
        /// <summary>
        /// 房间名
        /// </summary>
        public string RoomName = string.Empty;
        /// <summary>
        /// 选择的状态是否能够取消
        /// </summary>
        public bool SelectCancel = true;
        /// <summary>
        /// 点图标控件
        /// </summary>
        private RowLeftIconView btnPoint = null;
        /// <summary>
        /// 房间控件
        /// </summary>
        private RowCenterView btnRoom = null;
        /// <summary>
        /// 选择控件
        /// </summary>
        private MostRightEmptyView btnSelect = null;
        /// <summary>
        /// 状态
        /// </summary>
        private StatuMode Statu = StatuMode.UN_SELECT;
 
        /// <summary>
        /// 做成一个房间选择的行控件
        /// </summary>
        /// <param name="listView">列表控件,可以为空</param>
        /// <param name="room">房间对象</param>
        public RoomSelectRow(VerticalScrolViewLayout listView, Common.Room room)
        {
            this.RoomName = room.Name;
            this.MouseUpEvent += (sender, e) =>
            {
                this.IsSelected = Statu == StatuMode.SELECT ? false : true;
            };
 
            if (listView != null)
            {
                listView.AddChidren(this);
                //初始化内部控件
                this.InitControl();
            }
        }
 
        /// <summary>
        /// 初始化内部控件
        /// </summary>
        public void InitControl()
        {
            //图标
            btnPoint = new RowLeftIconView();
            btnPoint.ChangedControlInPointMode();
            this.AddChidren(btnPoint, ChidrenBindMode.BindEventOnly);
 
            //房间
            btnRoom = new RowCenterView();
            btnRoom.Text = this.RoomName;
            this.AddChidren(btnRoom, ChidrenBindMode.BindEventOnly);
            //点号图片有点特殊,需要调整偏移量
            btnRoom.X -= ControlCommonResourse.PointXXLeft;
 
            //选择
            btnSelect = new MostRightEmptyView();
            btnSelect.Visible = false;
            btnSelect.UnSelectedImagePath = "Item/TickSelected.png";
            this.AddChidren(btnSelect, ChidrenBindMode.BindEventOnly);
        }
 
        /// <summary>
        /// 设定选择状态
        /// </summary>
        private void SetSelectStatu()
        {
            if (Statu == StatuMode.SELECT)
            {
                return;
            }
            btnPoint.IsSelected = true;
            btnRoom.TextColor = UserCenterColor.Current.SelectTextColor;
            btnSelect.Visible = true;
            //状态变更
            Statu = StatuMode.SELECT;
        }
 
        /// <summary>
        /// 设置非选择状态
        /// </summary>
        private void SetUnselectStatu()
        {
            if (Statu == StatuMode.UN_SELECT)
            {
                return;
            }
            btnPoint.IsSelected = false;
            btnRoom.TextColor = UserCenterColor.Current.TextColor;
            btnSelect.Visible = false;
            //状态变更
            Statu = StatuMode.UN_SELECT;
        }
    }
}