When the RadScheduleView has a recurring appointment with no end date for its recurrence in certain scenarios multiple errors can be try/catch-ed internally, which leads to a degraded performance. One such scenario is when a recurring appointment with no end date starts before the currently displayed time period, but does not have any occurrences before the displayed time period.
As a workaround, an end date can be added to the recurrence rule of recurring appointments.
In the scenario where the Fluent theme is applied and the MonthViewDefinition'sAllowCustomAppointmentSize property is set to True, appointments with different heights may overlap the expand/collapse RadToggleButton when collapsed.
To work this around, extract the default GroupHeaderStyleSelector for the Fluent theme. Then, extract the Style with x:Key="MonthViewBottomLevelWeekGroupStyle" and modify the Padding property's value. Set this Style to the MonthViewBottomLevelWeekGroupStyle property of the extracted OrientedGroupHeaderStyleSelector (default GroupHeaderStyleSelector). Finally, set an instance of the modified style selector to the GroupHeaderStyleSelector property of RadScheduleView.
Issues when using IsGroupHeadersVirtualizationEnabled=true in timeline mode with different-sized resources:
- Drag&Drop of appointments ends up in the wrong place. The drop preview is also displayed incorrectly on the wrong "resource".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>