public void AddEventItem(object sender, GestureEventArgs e) { Grid grid = sender as Grid; Point point = e.GetPosition(grid); string eventTitle = " + New title event"; double width = (grid.Parent as ScrollViewer).Width - 50; DateTime dateTime = _lastItem.ItemDate; int hour = (int)Math.Ceiling((point.Y) / Constants.GRID_HOURS_CELL_HEIGHT); EventItem eventItem = new EventItem() { EventColor = CustomColor.CornflowerBlue, EventStart = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, hour, 0, 0), EventEnd = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, hour + 1, 0, 0), EventTitle = eventTitle, EventLocation = string.Empty }; DailyDetailItem eventDetails = new DailyDetailItem(eventItem); eventDetails.Click += EditEvent; _lastItem.EventsForDay.Add(eventItem); eventDetails.SetValue(Grid.RowProperty, hour); eventDetails.SetValue(Grid.RowSpanProperty, 1); eventDetails.SetValue(Grid.ColumnProperty, 1); grid.Children.Add(eventDetails); }
private void GenerateHourEvents(List<EventItem> hourEvents) { foreach (EventItem item in hourEvents) { DailyDetailItem detailItem = new DailyDetailItem(item); int hours = item.EventEnd.Hour - item.EventStart.Hour; TimeSpan timespan = item.EventEnd - item.EventStart; double pixels = timespan.Hours * 60 + timespan.Minutes; double marginTop = item.EventStart.Minute; double marginBottom = item.EventEnd.Minute; detailItem.SetValue(Grid.RowProperty, item.EventStart.Hour +1); detailItem.SetValue(Grid.RowSpanProperty, hours); detailItem.SetValue(Grid.ColumnProperty, 1); detailItem.Height = pixels; detailItem.Margin = new Thickness(0, marginTop, 0, marginBottom); _owningCalendar.hoursDetailsGrid.Children.Add(detailItem); detailItem.Click += EditEvent; } }