File was renamed from ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameLayoutControl.cs |
| | |
| | | /// <summary>
|
| | | /// 做成一个点击后能够显示点击状态的控件(基层控件)
|
| | | /// </summary>
|
| | | public class FrameLayoutControl : FrameLayout
|
| | | public class FrameLayoutStatuControl : FrameLayoutBase
|
| | | {
|
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary> |
| | | /// 单击弹起事件 |
| | | /// </summary> |
| | | public Action<object, MouseEventArgs> ButtonClickEvent; |
| | | /// <summary> |
| | | /// 状态设置的事件(会重载底层效果) |
| | | /// </summary> |
| | | /// <summary>
|
| | | /// 单击弹起事件
|
| | | /// </summary>
|
| | | public Action<object, MouseEventArgs> ButtonClickEvent;
|
| | | /// <summary>
|
| | | /// 状态设置的事件(会重载底层效果)
|
| | | /// </summary>
|
| | | public Action<bool> SelectStatuEvent;
|
| | | /// <summary>
|
| | | /// 是否启用点亮功能(默认启用)
|
| | | /// </summary> |
| | | /// </summary>
|
| | | public bool UseClickStatu = true;
|
| | | /// <summary>
|
| | | /// 能否点击
|
| | |
| | | public bool CanClick = true;
|
| | | /// <summary>
|
| | | /// 原来的背景色
|
| | | /// </summary> |
| | | private uint oldBackColor = 0; |
| | | /// </summary>
|
| | | private uint oldBackColor = 0;
|
| | | /// <summary>
|
| | | /// 当前是否已经处于选择状态
|
| | | /// </summary> |
| | | /// </summary>
|
| | | private bool IsSelectStatu = false;
|
| | | /// <summary>
|
| | | /// 子控件Y轴偏移量(共通定义而已)
|
| | |
| | | set { this.Radius = (uint)Application.GetRealHeight(value); }
|
| | | }
|
| | |
|
| | | #endregion |
| | | #endregion
|
| | |
|
| | | #region ■ 初始化_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 做成一个点击后能够显示点击状态的控件
|
| | | /// </summary> |
| | | /// <param name="i_ChidrenYaxis">子控件Y轴偏移量(真实值,有些界面需要这种特殊操作)</param> |
| | | public FrameLayoutControl(int i_ChidrenYaxis = 0) |
| | | /// </summary>
|
| | | /// <param name="i_ChidrenYaxis">子控件Y轴偏移量(真实值,有些界面需要这种特殊操作)</param>
|
| | | public FrameLayoutStatuControl(int i_ChidrenYaxis = 0)
|
| | | {
|
| | | this.chidrenYaxis = i_ChidrenYaxis;
|
| | |
|
| | | this.MouseUpEventHandler += ChildrenUpEvent;
|
| | | this.MouseDownEventHandler += ChildrenDownEvent; |
| | | this.MouseDownEventHandler += ChildrenDownEvent;
|
| | | }
|
| | |
|
| | | #endregion |
| | | #endregion
|
| | |
|
| | | #region ■ 绑定事件___________________________ |
| | | #region ■ 绑定事件___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 变更子控件的绑定模式
|
| | | /// </summary>
|
| | | /// <param name="view">子控件</param>
|
| | | /// <param name="chidrenBindMode">变更的绑定模式</param> |
| | | /// <param name="chidrenBindMode">变更的绑定模式</param>
|
| | | public void ChangedChidrenBindMode(View view, ChidrenBindMode chidrenBindMode)
|
| | | {
|
| | | if (view is ButtonBase) |
| | | if (view is ButtonBase)
|
| | | {
|
| | | //子控件移除事件
|
| | | ButtonBase button = (ButtonBase)view;
|
| | | button.ButtonClickEvent -= ChildrenUpEvent;
|
| | | button.MouseDownEventHandler -= ChildrenDownEvent; |
| | | |
| | | this.BindChidrenEvent(view, chidrenBindMode); |
| | | button.MouseDownEventHandler -= ChildrenDownEvent;
|
| | |
|
| | | this.BindChidrenEvent(view, chidrenBindMode);
|
| | | }
|
| | | else if (view is ImageView)
|
| | | {
|
| | | view.MouseUpEventHandler -= ChildrenUpEvent;
|
| | | view.MouseDownEventHandler -= ChildrenDownEvent; |
| | | |
| | | view.MouseDownEventHandler -= ChildrenDownEvent;
|
| | |
|
| | | this.BindChidrenEvent(view, chidrenBindMode);
|
| | | }
|
| | | else if (view is ViewGroup)
|
| | |
| | |
|
| | | this.BindChidrenEvent(view, chidrenBindMode);
|
| | | }
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 绑定子控件事件(如果是复合控件,在初始化完成后,调用ChangedChidrenBindMode)
|
| | | /// </summary>
|
| | | /// <param name="view"></param>
|
| | | /// <param name="chidrenBindMode"></param> |
| | | /// <param name="chidrenBindMode"></param>
|
| | | private void BindChidrenEvent(View view, ChidrenBindMode chidrenBindMode)
|
| | | {
|
| | | if (chidrenBindMode == ChidrenBindMode.NotBind)
|
| | | {
|
| | | return;
|
| | | }
|
| | | if (view is ButtonBase) |
| | | if (view is ButtonBase)
|
| | | {
|
| | | //为子控件添加事件
|
| | | ButtonBase button = (ButtonBase)view;
|
| | |
| | | button.MouseDownEventHandler -= ChildrenDownEvent;
|
| | |
|
| | | button.ButtonClickEvent += ChildrenUpEvent;
|
| | | button.MouseDownEventHandler += ChildrenDownEvent; |
| | | button.MouseDownEventHandler += ChildrenDownEvent;
|
| | | }
|
| | | else if (view is ImageView)
|
| | | {
|
| | |
| | |
|
| | | #region ■ 添加子控件_________________________
|
| | |
|
| | | /// <summary> |
| | | /// 添加子控件 |
| | | /// </summary> |
| | | /// <param name="view">子控件</param> |
| | | /// <param name="chidrenBindMode">绑定模式</param> |
| | | public void AddChidren(View view, ChidrenBindMode chidrenBindMode = ChidrenBindMode.BindAll) |
| | | /// <summary>
|
| | | /// 添加子控件
|
| | | /// </summary>
|
| | | /// <param name="view">子控件</param>
|
| | | /// <param name="chidrenBindMode">绑定模式</param>
|
| | | public void AddChidren(View view, ChidrenBindMode chidrenBindMode = ChidrenBindMode.BindAll)
|
| | | {
|
| | | this.oldBackColor = this.BackgroundColor;
|
| | | |
| | |
|
| | | base.AddChidren(view);
|
| | |
|
| | | //绑定子控件事件
|
| | | this.BindChidrenEvent(view, chidrenBindMode); |
| | | this.BindChidrenEvent(view, chidrenBindMode);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 控件事件___________________________
|
| | |
|
| | | /// <summary> |
| | | /// 点击按下事件(点亮) |
| | | /// </summary> |
| | | /// <param name="sender">Sender.</param> |
| | | /// <param name="e">E.</param> |
| | | private void ChildrenDownEvent(object sender, MouseEventArgs e) |
| | | /// <summary>
|
| | | /// 点击按下事件(点亮)
|
| | | /// </summary>
|
| | | /// <param name="sender">Sender.</param>
|
| | | /// <param name="e">E.</param>
|
| | | private void ChildrenDownEvent(object sender, MouseEventArgs e)
|
| | | {
|
| | | if (this.UseClickStatu == false|| this.CanClick == false)
|
| | | if (this.UseClickStatu == false || this.CanClick == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | this.StartSelectStatuAppeal(ControlCommonResourse.StatuChangedWaitTime); |
| | | this.StartSelectStatuAppeal(ControlCommonResourse.StatuChangedWaitTime);
|
| | | }
|
| | |
|
| | | /// <summary> |
| | | /// 点击松开事件 |
| | | /// </summary> |
| | | /// <param name="sender">Sender.</param> |
| | | /// <param name="e">E.</param> |
| | | private void ChildrenUpEvent(object sender, MouseEventArgs e) |
| | | /// <summary>
|
| | | /// 点击松开事件
|
| | | /// </summary>
|
| | | /// <param name="sender">Sender.</param>
|
| | | /// <param name="e">E.</param>
|
| | | private void ChildrenUpEvent(object sender, MouseEventArgs e)
|
| | | {
|
| | | if (this.CanClick == false)
|
| | | {
|
| | | //不允许点击
|
| | | return;
|
| | | }
|
| | | if (sender is FrameLayoutControl)
|
| | | if (sender is FrameLayoutStatuControl)
|
| | | {
|
| | | //LOG出力
|
| | | this.WriteLog();
|
| | |
| | | {
|
| | | //调用委托
|
| | | ButtonClickEvent?.Invoke(sender, e);
|
| | | } |
| | | catch (Exception ex) |
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | | //出现未知错误
|
| | | var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
|
| | | alert.Show();
|
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(ex);
|
| | | } |
| | | }
|
| | | }
|
| | |
|
| | | #endregion |
| | | #endregion
|
| | |
|
| | | #region ■ 单击状态显示_______________________ |
| | | #region ■ 单击状态显示_______________________
|
| | |
|
| | | /// <summary> |
| | | /// 设置单击后结束的状态 |
| | | /// </summary> |
| | | public void SetClickNotSelectStatu() |
| | | /// <summary>
|
| | | /// 设置单击后结束的状态
|
| | | /// </summary>
|
| | | public void SetClickNotSelectStatu()
|
| | | {
|
| | | this.IsSelectStatu = false; |
| | | this.IsSelectStatu = false;
|
| | | if (this.SelectStatuEvent != null)
|
| | | {
|
| | | this.SelectStatuEvent(false);
|
| | | return;
|
| | | }
|
| | | |
| | | this.BackgroundColor = this.oldBackColor; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置单击时的状态 |
| | | /// </summary> |
| | | public void SetClickSelectStatu() |
| | |
|
| | | this.BackgroundColor = this.oldBackColor;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 设置单击时的状态
|
| | | /// </summary>
|
| | | public void SetClickSelectStatu()
|
| | | {
|
| | | this.IsSelectStatu = true; |
| | | this.IsSelectStatu = true;
|
| | | if (this.SelectStatuEvent != null)
|
| | | {
|
| | | this.SelectStatuEvent(true);
|
| | | return;
|
| | | }
|
| | | |
| | | this.BackgroundColor = UserCenterColor.Current.RowSelectBackColor; |
| | |
|
| | | this.BackgroundColor = UserCenterColor.Current.RowSelectBackColor;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | /// <summary>
|
| | | /// 强制实施控件选中状态的特效
|
| | | /// </summary>
|
| | | /// <param name="waiTime"></param> |
| | | /// <param name="waiTime"></param>
|
| | | public void StartSelectStatuAppeal(int waiTime)
|
| | | {
|
| | | if (this.IsSelectStatu == true)
|
| | |
| | |
|
| | | /// <summary>
|
| | | /// 移除底层控件自身的单击事件
|
| | | /// </summary> |
| | | /// </summary>
|
| | | public void RemoveBaseClickEvent()
|
| | | {
|
| | | this.MouseUpEventHandler -= ChildrenUpEvent;
|
| | |
| | |
|
| | | /// <summary>
|
| | | /// 控件摧毁
|
| | | /// </summary> |
| | | /// </summary>
|
| | | public override void RemoveFromParent()
|
| | | {
|
| | | this.ButtonClickEvent = null;
|