The AppointmentItem element has a default value of Top for the VerticalContentAlignment property for the Windows 11 theme. In other themes, this property has a default value of Stretch.
To change it, create a Style with TargetType="AppointmentItem" and base it on the default AppointmentItemBaseStyle Style. On the newly created Style, set the VerticalContentAlignment property to Stretch (it is currently Top in the Windows11 theme). After that, change the default OrientedAppointmentItemStyleSelector so that each Style for its properties is based on the new Style, rather than the default one (AppointmentItemBaseStyle). Finally, set the custom OrientedAppointmentItemStyleSelector to the AppointmentStyleSelector property of RadScheduleView.
The following code snippet shows this suggestion's implementation:
xmlns:scheduleView="http://schemas.telerik.com/2008/xaml/presentation"
<Style x:Key="CustomAppointmentItemStyle" TargetType="scheduleView:AppointmentItem" BasedOn="{StaticResource AppointmentItemBaseStyle}">
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
</Style>
<scheduleView:OrientedAppointmentItemStyleSelector x:Key="CustomAppointmentItemStyleSelector">
<scheduleView:OrientedAppointmentItemStyleSelector.AgendaViewStyle>
<Style TargetType="scheduleView:AppointmentItem" BasedOn="{StaticResource CustomAppointmentItemStyle}">
<Setter Property="Margin" Value="3 0 3 3"/>
</Style>
</scheduleView:OrientedAppointmentItemStyleSelector.AgendaViewStyle>
<scheduleView:OrientedAppointmentItemStyleSelector.MonthViewStyle>
<Style TargetType="scheduleView:AppointmentItem" BasedOn="{StaticResource CustomAppointmentItemStyle}">
<Setter Property="Margin" Value="2 3 1 0"/>
</Style>
</scheduleView:OrientedAppointmentItemStyleSelector.MonthViewStyle>
<scheduleView:OrientedAppointmentItemStyleSelector.HorizontalStyle>
<Style TargetType="scheduleView:AppointmentItem" BasedOn="{StaticResource CustomAppointmentItemStyle}"/>
</scheduleView:OrientedAppointmentItemStyleSelector.HorizontalStyle>
<scheduleView:OrientedAppointmentItemStyleSelector.VerticalStyle>
<Style TargetType="scheduleView:AppointmentItem" BasedOn="{StaticResource CustomAppointmentItemStyle}">
<Setter Property="Margin" Value="1"/>
<Setter Property="ResizeCursor" Value="SizeNS"/>
<Setter Property="Template" Value="{StaticResource AppointmentItemVerticalControlTemplate}"/>
</Style>
</scheduleView:OrientedAppointmentItemStyleSelector.VerticalStyle>
</scheduleView:OrientedAppointmentItemStyleSelector>
<Style TargetType="scheduleView:RadScheduleView" BasedOn="{StaticResource RadScheduleViewStyle}">
<Setter Property="AppointmentStyleSelector" Value="{StaticResource CustomAppointmentItemStyleSelector}"/>
</Style>
For a customer project we would like to be able to have the ability to add exceptions to the recurrencepattern of a scheduleview SpecialSlot. This would be used for displaying different types of working hours which have a recurrence but on occasion also have a exception. Could this feature be added? Regards, Johan Lollinga Ideo B.V.
Allow drag and drop of an AllDayEvent from/to the AllDayArea.
In AgendaView, you can see the start, end, and subject of each appointment. When All Day event is set to one appointment, its start and end time is not changed. The text can be changed to All Day Event.
The GetOccurrencesWithoutExceptionsFromDateTimeRange should return the occurrences of a recurring appointment, without the exceptions (modified or deleted occurrences). However, now the method returns modified occurrences and skips only the deleted ones. The method should skip also the modified occurrences.
To work this around, exclude the exceptions using their state property:
var occurrencesWithoutExceptions = appointment.GetOccurrencesWithoutExceptionsFromDateTimeRange(appointment.Start, DateTime.Now.AddDays(130)).Where(o => o.State != RecurrenceState.Exception);