<Grid> <Grid.RowDefinitions> <RowDefinition Height="auto"></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <Button x:Name="BtnBack" Content="<" Width="30" Height="30" HorizontalAlignment="Left" Margin="10" Click="BtnBack_Click"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="25"></Setter> </Style> </Button.Resources> </Button> <TextBlock x:Name="TextDate" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock> <Button x:Name="BtnUp" Content=">" Width="30" Height="30" HorizontalAlignment="Right" Margin="10" Click="BtnUp_Click"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="25"></Setter> </Style> </Button.Resources> </Button> <Grid x:Name="GridPanel" Grid.Row="1"> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> </Grid> </Grid>
DateTime DateNow; public UserCalendar() { InitializeComponent(); DateNow = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); Refresh(); } private void Refresh() { GridPanel.Children.Clear(); TextDate.Text = DateNow.ToString("MMMM yyyy"); var dateStart = DateNow; var dateEnd = dateStart.AddMonths(1); var date = new DateTime(); for (int index_date = 0; index_date < 7; index_date++) { var textDate = new TextBlock() { Text = date.AddDays(index_date).DayOfWeek.ToString().Substring(0, 3), FontSize = 17, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, }; GridPanel.Children.Add(textDate); Grid.SetColumn(textDate, index_date); } var dat = (int)(dateStart.DayOfWeek - 1); if (dat == -1) dat = 6; while (dateStart < dateEnd) { var textNow = new TextBlock() { Text = dateStart.Day.ToString(), FontSize = 17, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, }; GridPanel.Children.Add(textNow); var dateN = dateStart.Day + dat - 1; Grid.SetColumn(textNow, dateN % 7); Grid.SetRow(textNow, dateN / 7 + 1); dateStart = dateStart.AddDays(1); } } private void BtnDown_Click(object sender, RoutedEventArgs e) { DateNow = DateNow.AddMonths(-1); Refresh(); } private void BtnUp_Click(object sender, RoutedEventArgs e) { DateNow = DateNow.AddMonths(1); Refresh(); }