[]
        
(Showing Draft Content)

C1.WPF.Schedule.AppointmentsCoverPane

AppointmentsCoverPane Class

Provides a surface for painting appointment boxes over an arbitrary visual intervals layout.

Namespace: C1.WPF.Schedule
Assembly: C1.WPF.Schedule.4.6.2.dll
Syntax
public class AppointmentsCoverPane : CoverElementsPane, IAnimatable, IFrameworkInputElement, IInputElement, ISupportInitialize, IQueryAmbient, IWeakEventListener
Remarks
<xref href="C1.WPF.Schedule.AppointmentsCoverPane" data-throw-if-not-resolved="false"></xref> allows you to visually represent a set of appointments 

that fit in a time range exposed by a current view, and to draw appointment boxes relative to UI elements representing VisualIntervals covered by the appointment. The AppointmentsCoverPane element, being placed somewhere inside C1Scheduler visual tree (usually in C1Scheduler's ControlTemplate), provides a surface where it draws appointment boxes relative to UI elements representing VisualIntervals. AppointmentsCoverPane is capable to recognize the case when the appointment box must be divided into two or more visual boxes, for example, if appointment covers three days in the Working Week View, AppointmentsCoverPane will automatically draw three boxes for the appointment, each box in a corresponding day column, with starting and ending edges positioned at interval UI elements corresponding to start and end time of the appointment in this day.

AppointmentsCoverPane provides this functionality for an arbitrary UI representing VisualIntervals. To make it possible, each element that can be treated as VisualInterval UI representative (usually it's an outer (root) element in the VisualIntervalTemplate definition) must have the attached OrientationProperty assigned (CoverElementsPane is the base class for AppointmentsCoverPane). The assigned value indicates a chronological flow direction of interval elements and can take Horizontal or Vertical values. For example, interval elements in the Working Week View have it assigned to Vertical, while elements of Month View assign it to Horizontal. A content of an appointment box of AppointmentsCoverPane is represented by DataTemplate defined in the IntervalAppointmentTemplate property.

Constructors

Name Description
AppointmentsCoverPane()

Creates a new instance of the AppointmentsCoverPane pane.

Fields

Name Description
AppointmentFilterProperty

The AppointmentFilter attached property can be used to specify which type of appointments should be drawn by the AppointmentsCoverPane pane.

KeepTimesAtDropProperty

The KeepTimesAtDrop attached property determines the behavior of moved (dragged) appointments. If this value is True, after dragging an appointment to the desired VisualInterval, the Appointment start date is changed to the VisualInterval start date. If this value is False, the Appointment.Start becomes equal to the VisualInterval.StartTime, and Appointment.Duration becomes equal to the VisualInterval.TimeScale. The default value is False.

Properties

Name Description
ContentKind

Gets the type of content acceptable by the current instance of AppointmentsCoverPane.

UseSimpleLayout

Only set this property to false if you use complex layout in the custom C1Scheduler control template and found problems with laying out appointments at runtime. In such case AppointmentsCoverPane will use more slow algorithm to determine what elements should be used to layout appointments over them.

Methods

Name Description
GetAppointmentFilter(FrameworkElement)

Gets the value of the AppointmentFilter attached property for a given framework element.

GetCoverElement(object)

Creates new wrapper to represent cover element.

GetHosts()

Gets the list of the FrameworkElement elements, which are the root of visual tree to search covered elements.

GetKeepTimesAtDrop(FrameworkElement)

Gets the value of the KeepTimesAtDrop attached property for a given framework element.

GetLaneSize(SizingType, object, double, int)

Overrides base class behavior. If sizingType is ExtendedSingle, always returns fixed size for all-day or multi-day appointments.

InitializeAppointment(Appointment)

Initializes the newly created appointment or edits existing one when it is dropped to the AppointmentsCoverPane by the end-user. This method is called by the C1Scheduler control immediately before firing UserAddingAppointment and BeforeAppointmentDrop events.

IsHostElementInternal(FrameworkElement)

Checks whether specified element is hosted in the same host as the current CoverElementsPane instance.

IsPaneAppointment(Appointment, AppointmentFilterEnum)

Checks whether the specified appointment should be shown in the current pane. The default implementation filters appointments according to the AppointmentsCoverPane.AppointmentFilter property value.

IsPaneElementInternal(FrameworkElement)

Checks whether specified element is covered by the current CoverElementsPane instance.

SetAppointmentFilter(FrameworkElement, AppointmentFilterEnum)

Sets the value of the AppointmentFilter attached property for a given framework element.

SetKeepTimesAtDrop(FrameworkElement, bool)

Sets the value of the KeepTimesAtDrop attached property for a given framework element.