示例#1
0
        /// <summary>
        /// 拖拽事件,将目标Control保存到DragObject中
        /// </summary>
        /// <param name="obj"></param>
        void daycontrol_OnDragObjectEvent(DragObject obj)
        {
            if (obj.MouseLeftDown == false || obj.MouseImage == null)
            {
                return;
            }

            //得到拖拽控件中心点
            Point?p = obj.GetCenter();

            if (p == null)
            {
                return;
            }

            ICSSDayControl day = GetDragPlace(p.Value, obj);

            if (day == null || day == obj.Control)
            {
                obj.State     = DragState.Normal;
                obj.ToControl = null;
            }
            else
            {
                obj.State     = DragState.Allow;
                obj.ToControl = day;
            }
        }
示例#2
0
        private void CreateDayControl()
        {
            if (monthGrid == null)
            {
                return;
            }
            ClearGrid();
            dayList = new Dictionary <string, ICSSDayControl>();
            //monthGrid.Children.Clear();
            DateTime today = Day;

            DateTime Monthfirstday = DateTime.Parse(today.ToString("yyyy-MM") + "-01");

            int days     = DateTime.DaysInMonth(today.Year, today.Month);
            int maxcol   = 6;
            int startrow = 1;
            int startCol = WeekIndex(Monthfirstday.DayOfWeek); //开始的列

            ICSSDayControl daycontrol;

            for (int i = 0; i < days; i++)
            {
                daycontrol = new ICSSDayControl();
                daycontrol.SetBinding(ICSSDayControl.AllowDragProperty, new System.Windows.Data.Binding()
                {
                    Source = this, Path = new PropertyPath("AllDrag")
                });
                daycontrol.Day = DateTime.Parse(today.ToString("yyyy-MM") + "-" + (i + 1));
                daycontrol.SetBinding(ICSSDayControl.StyleProperty, new System.Windows.Data.Binding()
                {
                    Source = this, Path = new PropertyPath("DayControlStyle")
                });
                daycontrol.SetBinding(ICSSDayControl.ItemDaytTemplateProperty, new System.Windows.Data.Binding("ItemDaytTemplate")
                {
                    Source = this
                });
                dayList.Add(daycontrol.Day.ToString("yyyy-MM-dd"), daycontrol);
                Grid.SetColumn(daycontrol, startCol);
                Grid.SetRow(daycontrol, startrow);
                monthGrid.Children.Add(daycontrol);
                startCol++;
                if (startCol > maxcol)
                {
                    startCol = 0;
                    startrow++;
                }

                daycontrol.DayControlClick           += daycontrol_DayControlClick;   //控件点击事件
                daycontrol.OnDragObjectEvent         += daycontrol_OnDragObjectEvent; //
                daycontrol.OnDragObjectCompleteEvent += daycontrol_OnDragObjectCompleteEvent;
            }

            //绑定日控件DataContext
            SetDayControlDataContext();
        }