public MainWindow() { InitializeComponent(); NowyCalendarDayButton dm = new NowyCalendarDayButton(); DataContext = dm; }
/// <summary> /// Tworzy dni poprzedniego miesiaca w widoku obecnego /// </summary> private void CreatePreviousMonthDays(int monthDays) { var indexRow = 0; for (int i = previousDaysLimit; i > 0; i--) { string year = DateTime.Now.Year.ToString(); string month = (Convert.ToInt32(DateTime.Now.Month.ToString()) - 1).ToString(); NowyCalendarDayButton dzien = new NowyCalendarDayButton(monthDays - (i - 1), actualMonth, actualYear); dzien.Opacity = 0.2; dzien.IsEnabled = false; Border dayBorder = new Border(); dayBorder.BorderThickness = new Thickness(1, 1, 1, 1); dayBorder.BorderBrush = new SolidColorBrush(Colors.SkyBlue); dayBorder.Child = dzien; MonthView.Children.Add(dayBorder); Grid.SetColumn(dayBorder, (previousDaysLimit - i)); Grid.SetRow(dayBorder, indexRow); } }
/// <summary> /// Tworzy dni obecnego miesiaca w widoku /// </summary> /// <param name="daysNumber"></param> private void CreateCalendarDayButtonTest(int daysNumber, int month) { MonthView.Children.Clear(); var indexRow = 0; for (int i = 0; i < daysNumber; i++) { var dayOfWeek = DateTime.Parse((actualYear + "/" + month + "/" + (i + 1).ToString()).ToString()).DayOfWeek.ToString(); //sprawdza jaki to dzien tygodnia var lista = DaysOfWeek.ColumnDefinitions.ToList(); // pobieram kolumny do listy var indexCol = lista.IndexOf(DaysOfWeek.ColumnDefinitions.Where(c => c.Name == dayOfWeek).SingleOrDefault()); //pobieram index kolumny podanego dnia if (i == 0) //pobieram numer kolumny w ktorej zostal wpisany 1 dzien podczas 1 iteracji { previousDaysLimit = indexCol; } NowyCalendarDayButton day = new NowyCalendarDayButton(i + 1, actualMonth, actualYear); Border dayBorder = new Border(); dayBorder.BorderThickness = new Thickness(1, 1, 1, 1); dayBorder.BorderBrush = new SolidColorBrush(Colors.SkyBlue); dayBorder.Child = day; MonthView.Children.Add(dayBorder); Grid.SetColumn(dayBorder, indexCol); Grid.SetRow(dayBorder, indexRow); if (dayOfWeek.Equals("Sunday")) { indexRow++; } rowStart = indexRow; } }
/// <summary> /// Tworzy dni obecnego miesiaca w widoku /// </summary> /// <param name="daysNumber"></param> private void CreateCalendarDayButton(int daysNumber, int month) { MonthView.Children.Clear(); var indexRow = 0; var queryRozrod = (from Rozrod in Polaczenie.Rozrod where Rozrod.Data.Month == month && Rozrod.Data.Year == ActualYear select Rozrod).ToList(); for (int i = 0; i < daysNumber; i++) { var dayOfWeek = DateTime.Parse((ActualYear + "/" + month + "/" + (i + 1).ToString()).ToString()).DayOfWeek.ToString(); //sprawdza jaki to dzien tygodnia var lista = DaysOfWeek.ColumnDefinitions.ToList(); // pobieram kolumny do listy var indexCol = lista.IndexOf(DaysOfWeek.ColumnDefinitions.Where(c => c.Name == dayOfWeek).SingleOrDefault()); //pobieram index kolumny podanego dnia if (i == 0) //pobieram numer kolumny w ktorej zostal wpisany 1 dzien podczas 1 iteracji { previousDaysLimit = indexCol; } NowyCalendarDayButton day = new NowyCalendarDayButton(i + 1, actualMonth, ActualYear); Border dayBorder = new Border(); dayBorder.BorderThickness = new Thickness(1, 1, 1, 1); dayBorder.BorderBrush = new SolidColorBrush(Colors.SkyBlue); var dayList = queryRozrod.Where(x => x.Data.Day == i + 1).ToList(); for (int j = 0; j < dayList.Count(); j++) { NotatkaKalendarza notka = new NotatkaKalendarza(day); var typNotki = dayList[j].czyRuja; switch (typNotki) { case 0: notka.CreateLabel("Ruja", dayList[j].Zwierze.nr_kolczyka); break; case 1: notka.CreateLabel("Wycielenie", dayList[j].Zwierze.nr_kolczyka); break; } } dayBorder.Child = day; MonthView.Children.Add(dayBorder); Grid.SetColumn(dayBorder, indexCol); Grid.SetRow(dayBorder, indexRow); if (dayOfWeek.Equals("Sunday")) { indexRow++; } rowStart = indexRow; } }
/// <summary> /// Tworzy menu contextowe po nacisnieciu PPM /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UserControl_MouseRightButtonDown(object sender, MouseButtonEventArgs e) { ClickedDay = sender as NowyCalendarDayButton; ContextMenu contextMenu = new ContextMenu(); MenuItem nowyLabel = new MenuItem(); nowyLabel.Header = "Dodaj notke"; nowyLabel.Click += new RoutedEventHandler(MenuItem_Click); contextMenu.Items.Add(nowyLabel); (sender as UserControl).ContextMenu = contextMenu; }
public NowyCalendar() { InitializeComponent(); MonthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(actualMonth); MonthYear.Content = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(actualMonth); CreateDaysOfWeek(); CreateCalendarDayButtonTest(GetCurrentMonthDaysNumber(actualYear, actualMonth), GetCurrentMonth()); CreatePreviousMonthDays(GetLastMonthDaysNumber()); CreateNextMonthDays(); NowyCalendarDayButton dm = new NowyCalendarDayButton(); DataContext = dm; DataContext = this; }
/// <summary> /// Tworzy dni kolejnego miesiaca w widoku obecnego /// </summary> private void CreateNextMonthDays() { var buffor = 0; var yearBuffor = actualYear; var indexRow = rowStart; var MonthDays = Convert.ToInt32(DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month).ToString()); //pobiera liczbe dni wybranego miesiaca w roku for (int i = 0; i < gridChildren - (previousDaysLimit + GetCurrentMonthDaysNumber(actualYear, actualMonth)); i++) // 42 stala liczba "dzieci" w gridzie, dlatego wpisana statycznie { if (actualMonth == 12) { buffor = 1; yearBuffor = actualYear + 1; } else { buffor = actualMonth + 1; } var dayOfWeek = DateTime.Parse((yearBuffor + "/" + buffor + "/" + (i + 1).ToString()).ToString()).DayOfWeek.ToString(); //sprawdza jaki to dzien tygodnia var lista = DaysOfWeek.ColumnDefinitions.ToList(); var indexCol = lista.IndexOf(DaysOfWeek.ColumnDefinitions.Where(c => c.Name == dayOfWeek).SingleOrDefault()); //pobieram index kolumny podanego dnia NowyCalendarDayButton day = new NowyCalendarDayButton(i + 1, actualMonth, actualYear); day.Opacity = 0.2; day.IsEnabled = false; Border dayBorder = new Border(); dayBorder.BorderThickness = new Thickness(1, 1, 1, 1); dayBorder.BorderBrush = new SolidColorBrush(Colors.SkyBlue); dayBorder.Child = day; MonthView.Children.Add(dayBorder); Grid.SetColumn(dayBorder, indexCol); Grid.SetRow(dayBorder, indexRow); if (dayOfWeek.Equals("Sunday")) { indexRow++; } } }
/// <summary> /// Tworzy dni poprzedniego miesiaca w widoku obecnego /// </summary> private void CreatePreviousMonthDays(int monthDays) { var indexRow = 0; for (int i = previousDaysLimit; i > 0; i--) { NowyCalendarDayButton day = new NowyCalendarDayButton(monthDays - (i - 1), 0, 0); day.Opacity = 0.2; day.IsEnabled = false; Border dayBorder = new Border(); dayBorder.BorderThickness = new Thickness(1, 1, 1, 1); dayBorder.BorderBrush = new SolidColorBrush(Colors.SkyBlue); dayBorder.Child = day; MonthView.Children.Add(dayBorder); Grid.SetColumn(dayBorder, (previousDaysLimit - i)); Grid.SetRow(dayBorder, indexRow); } }