/// <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; } }
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(); }