Completed
Last Updated: 28 Aug 2023 08:40 by ADMIN
Release LIB 2023.2.904 (4 Sep 2023)
Stenly
Created on: 07 Aug 2023 09:55
Category: ScheduleView
Type: Bug Report
1
ScheduleView: AppointmentItem has wrong value for the VerticalContentAlignment property in Windows 11 theme

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>

0 comments