Skip to main content

AppointmentViewInfo Class

Provides information on the visual representation of the appointment.

Namespace: DevExpress.Xpf.Scheduler.Drawing

Assembly: DevExpress.Xpf.Scheduler.v24.2.dll

NuGet Package: DevExpress.Wpf.Scheduler

Declaration

public class AppointmentViewInfo :
    IAppointmentViewInfo,
    IAppointmentView,
    ISelectableIntervalViewInfo,
    INotifyPropertyChanged

The following members return AppointmentViewInfo objects:

Remarks

Important

You are viewing documentation for the legacy WPF Scheduler control. If you’re starting a new project, we strongly recommend that you use a new control declared in the DevExpress.Xpf.Scheduling namespace. If you decide to upgrade an existing project in order to switch to the updated scheduler control, see the Migration Guidelines document.

The AppointmentViewInfo object can be accessed via the AppointmentViewInfoCustomizingEventArgs.ViewInfo property, when handling the SchedulerControl.AppointmentViewInfoCustomizing event. This object contains information used to render an appointment or appointment part and provides properties that can be used to customize the appointment appearance (for example, AppointmentViewInfo.Subject, AppointmentViewInfo.LabelColor, AppointmentViewInfo.Interval, AppointmentViewInfo.Options, AppointmentViewInfo.CustomViewInfo, etc.).

Example

This example demonstrates how to use the AppointmentViewInfo.Subject, AppointmentViewInfo.Location, AppointmentViewInfo.Description, AppointmentViewInfo.CustomViewInfo, SchedulerViewBase.AppointmentToolTipContentTemplate properties and SchedulerControl.AppointmentViewInfoCustomizing event to define and apply a custom template for showing an appointment subject, location, description and resource images within appointment tooltips.

using System.IO;
using System.Data;
using System.Windows;
using System.Data.OleDb;
using DevExpress.Xpf.Core.Native;
using System.Collections.Generic;
using System.Windows.Media.Imaging;
using DevExpress.XtraScheduler;
using DevExpress.Xpf.Scheduler;
using DevExpress.Xpf.Scheduler.Drawing;

namespace WpfApplication1 {
public partial class MainWindow : Window {
    Dictionary<Resource, BitmapImage> resourceImages = new Dictionary<Resource, BitmapImage>();

    public MainWindow() {
        InitializeComponent();

        // ...

        DataTemplate template = (DataTemplate)this.FindResource("AppointmentTooltipContentTemplate");
        schedulerControl1.WorkWeekView.AppointmentToolTipContentTemplate = template;

    }

    private void schedulerControl1_AppointmentViewInfoCustomizing(object sender, 
                                                                AppointmentViewInfoCustomizingEventArgs e) {
    AppointmentViewInfo viewInfo = e.ViewInfo;
    Resource resource = schedulerControl1.Storage.Resources.GetResourceById(viewInfo.Appointment.ResourceId);
    if (resource == Resource.Empty || resource.Image == null)
        viewInfo.CustomViewInfo = null;
    else {
        if (!this.resourceImages.ContainsKey(resource))
        this.resourceImages[resource] = ImageHelper.CreateImageFromStream(ConvertImageToMemoryStream(resource.Image));

        viewInfo.CustomViewInfo = this.resourceImages[resource];
    }
    }

    public static MemoryStream ConvertImageToMemoryStream(System.Drawing.Image img) {
        var ms = new MemoryStream();
        img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
        return ms;
    }

}
}

Inheritance

Object
AppointmentViewInfo
See Also