Workaround: create a custom Appointment and override the PaintRecurrenceIcon method
Public Class MyAppointmentElement
Inherits AppointmentElement
Public Sub New(scheduler As RadScheduler, view As SchedulerView, appointment As IEvent)
MyBase.New(scheduler, view, appointment)
End Sub
Public Overrides Sub PaintRecurrenceIcon(graphics As IGraphics)
If Not Me.Recurring Then
Return
End If
Dim icon As Image = DirectCast(GetType(AppointmentElement).GetMethod("GetRecurrenceIcon", BindingFlags.Instance Or BindingFlags.NonPublic).Invoke(Me, Nothing), Image)
If icon Is Nothing Then
Return
End If
SyncLock icon
Dim clientRect As RectangleF = Me.GetClientRectangle(Me.Bounds.Size)
Dim x As Integer = CInt(clientRect.X) + CInt(clientRect.Width) - icon.Width
If Me.RightToLeft Then
x = CInt(clientRect.X)
End If
Dim imageRect As Rectangle = New Rectangle(x, CInt(clientRect.Y) + CInt(clientRect.Height) - icon.Height, icon.Width, icon.Height)
graphics.DrawImage(imageRect, icon, ContentAlignment.TopLeft, True)
End SyncLock
End Sub
End Class
Public Class MyElementProvider
Inherits SchedulerElementProvider
Public Sub New(scheduler As RadScheduler)
MyBase.New(scheduler)
End Sub
Protected Overrides Function CreateElement(Of T As SchedulerVisualElement)(view As SchedulerView, context As Object) As T
If GetType(T) = GetType(AppointmentElement) Then
Return TryCast(New MyAppointmentElement(Me.Scheduler, view, DirectCast(context, IEvent)), T)
End If
Return MyBase.CreateElement(Of T)(view, context)
End Function
End Class