예제 #1
0
 /// <summary>
 /// 初始化控件事件
 /// </summary>
 private void InitCtrlEvents()
 {
     ctrl.MouseEnter += (sender, e) => state = CcCtrlState.Hovered;
     ctrl.MouseLeave += (sender, e) => state = CcCtrlState.Normal;
     ctrl.MouseDown  += (sender, e) =>
     {
         //鼠标左键且点击次数为1
         if (e.Button == MouseButtons.Left && e.Clicks == 1)
         {
             state = CcCtrlState.Pressed;
         }
     };
     ctrl.MouseUp += (sender, e) =>
     {
         if (e.Button == MouseButtons.Left && e.Clicks == 1)
         {
             if (ctrl.ClientRectangle.Contains(e.Location))
             {
                 //控件区域包含鼠标的位置
                 state = CcCtrlState.Hovered;
             }
             else
             {
                 state = CcCtrlState.Normal;
             }
         }
     };
     ctrl.GotFocus  += (sender, e) => state = CcCtrlState.Focused;
     ctrl.LostFocus += (sender, e) => state = CcCtrlState.Normal;
 }
예제 #2
0
        /// <summary>
        /// 获取特定状态的外观属性
        /// </summary>
        /// <param name="state"></param>
        /// <returns></returns>
        private CcAppearance GetAppearance(CcCtrlState state)
        {
            CcAppearance appearance = null;

            switch (state)
            {
            case CcCtrlState.Disabled:
                appearance = ctrl.Appearances.DisabledAppearance;
                break;

            case CcCtrlState.Hovered:
                appearance = ctrl.Appearances.HoveredAppearance;
                break;

            case CcCtrlState.Pressed:
                appearance = ctrl.Appearances.PressedAppearance;
                break;

            case CcCtrlState.Focused:
                appearance = ctrl.Appearances.FocusedAppearance;
                break;

            case CcCtrlState.Normal:
            default:
                break;
            }

            return((appearance?.IsEmpty ?? true) ? ctrl.Appearances.Appearance : appearance);
        }