public void AddTimeArea(int startTime, int endTime, int planNumber) { // 標記已使用的區域 for (int i = startTime; i < endTime; i++) { TimeIsUsed[i] = true; } if (startTime < 12 && 12 < endTime) { // 畫兩塊 // 第一塊 ex:10~12 TimeAreaVM timeArea1 = new TimeAreaVM(); timeArea1.Top = 0; timeArea1.Left = startTime * 50; int size = 12 - startTime; timeArea1.Width = size * 50; timeArea1.BackgroundColor = colors[planNumber]; timeArea1.PlanNumber = planNumber; TimeAreas.Add(timeArea1); // 第二塊 TimeAreaVM timeArea2 = new TimeAreaVM(); timeArea2.Top = 80; timeArea2.Left = 0; size = endTime - 12; timeArea2.Width = size * 50; timeArea2.BackgroundColor = colors[planNumber]; timeArea2.PlanNumber = planNumber; TimeAreas.Add(timeArea2); } else { // 畫一塊 if (startTime <= 12) { TimeAreaVM timeArea = new TimeAreaVM(); timeArea.Top = 0; timeArea.Left = startTime * 50; int size = endTime - startTime; timeArea.Width = size * 50; timeArea.BackgroundColor = colors[planNumber]; timeArea.PlanNumber = planNumber; TimeAreas.Add(timeArea); } else { TimeAreaVM timeArea = new TimeAreaVM(); timeArea.Top = 80; timeArea.Left = (startTime - 12) * 50; int size = endTime - startTime; timeArea.Width = size * 50; timeArea.BackgroundColor = colors[planNumber]; timeArea.PlanNumber = planNumber; TimeAreas.Add(timeArea); } } }
private void DeleteCurrentPlan() { // delete timeArea var res = (from t in TimeAreas where t.PlanNumber == CurrentPlan.planNumber select t).ToList(); foreach (var item in res) { TimeAreas.Remove(item); } // set isUsed for (int i = CurrentPlan.StartTime; i < CurrentPlan.EndTime; i++) { TimeIsUsed[i] = false; } // delete plan Plans.Remove(CurrentPlan); CurrentPlan = null; CurrentPlanVisibility = Visibility.Hidden; }