Version

AppearanceData Property

Returns or sets an AppearanceData struct which can be used to override the resolves appearance for a particular header.
Syntax
'Declaration
 
Public Property AppearanceData As Nullable(Of AppearanceData)
public Nullable<AppearanceData> AppearanceData {get; set;}
Remarks

It is highly recommended that AppearanceData instances be shared whenever possible, especially when customizing the appearance for relatively large numbers of headers. Creating a new AppearanceData instance for every header that is created can introduce considerable overhead and impact performance adversely. If, for example, a particular appearance is to be assigned to headers that lie in a particular time range, instantiate one AppearanceData instance and assign that instance for each header that should exhibit that appearance.

If the AppearanceData property has not been explicitly set, it returns null. No instance is "lazily" created, so as to prevent unnecessary object instantiation.

Example
The following code sample demonstrates how to use the ColumnHeaderInitializing event to display an analog clock in place of the header text to depict the time spanned by that header:

For an overview of how to handle events in Visual Basic or Visual C#, see Event Handlers in Visual Basic and Visual C#. For specific information and code examples illustrating how to consume events in your application, see Consuming Events in the .NET Framework Developer's Guide.

Imports System.Collections.Generic
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports System.Diagnostics

    Public Sub ShowClocks(ByVal control As UltraTimelineView)
        '  Don't show any additional intervals
        control.AdditionalIntervals.Clear()

        '  Create a new TimeInterval with 15-minute intervals
        '  and assign it to the PrimaryInterval property.
        Dim primaryInterval As New TimeInterval(15, TimeIntervalUnits.Minutes)
        control.PrimaryInterval = primaryInterval

        '  Set the image alignment to middle/center
        control.ColumnHeaderAppearance.ImageHAlign = HAlign.Center
        control.ColumnHeaderAppearance.ImageVAlign = VAlign.Middle

        '  Set ColumnHeaderImageSize to a size that is large
        '  enough to display an analog clock image set the
        '  ColumnWidth property to a slightly larger size.
        control.ColumnHeaderImageSize = ClockSize
        control.ColumnWidth = ClockSize.Width + Padding

        '  Handle the ColumnHeaderInitializing event so we can
        '  show an image on the header instead of the text, and
        '  the ColumnHeaderToolTipDisplaying event so we can force
        '  a tooltip to be displayed.
        AddHandler control.ColumnHeaderInitializing, AddressOf Me.OnColumnHeaderInitializing
        AddHandler control.ColumnHeaderToolTipDisplaying, AddressOf Me.OnColumnHeaderToolTipDisplaying
    End Sub


    Private Sub OnColumnHeaderToolTipDisplaying(ByVal sender As Object, ByVal e As ColumnHeaderToolTipDisplayingEventArgs)

        '  If this is a primary interval header, show the start time
        '  in a tooltip, since there is no text on the header.
        If Not e.HeaderElement Is Nothing AndAlso e.HeaderElement.DateTimeInterval.IsPrimaryInterval Then
            Dim toolTipInfo As ToolTipInfo = e.ToolTipInfo
            toolTipInfo.ToolTipText = e.HeaderElement.DateTimeRange.StartDateTime.ToString(TimeInterval.ShortTimePattern)
            e.ToolTipInfo = toolTipInfo
        End If
    End Sub

    Private Sub OnColumnHeaderInitializing(ByVal sender As Object, ByVal e As ColumnHeaderInitializingEventArgs)

        If (e.DateTimeInterval.IsPrimaryInterval) Then
            '  Create an image of an analog clock, depicting the
            '  start time for this header, and assign it to the
            '  Image property of the e.AppearanceData
            Dim time As TimeSpan = e.DateTimeRange.StartDateTime.TimeOfDay
            Dim bmp As Bitmap = ClockImage.GetImage(time, ClockSize, Color.Black, Color.White)
            Dim appData As AppearanceData = New AppearanceData()
            appData.Image = bmp
            e.AppearanceData = appData

            '  Assign a space character to the text, so that
            '  nothing appears, but a tooltip can still be displayed
            e.Text = " "
        End If
    End Sub
using System.Collections.Generic;
using Infragistics.Win;
using Infragistics.Win.UltraWinSchedule;
using System.Diagnostics;

    public void ShowClocks( UltraTimelineView control )
    {
        //  Don't show any additional intervals
        control.AdditionalIntervals.Clear();

        //  Create a new TimeInterval with 15-minute intervals
        //  and assign it to the PrimaryInterval property.
        TimeInterval primaryInterval = new TimeInterval(15, TimeIntervalUnits.Minutes);
        control.PrimaryInterval = primaryInterval;

        //  Set the image alignment to middle/center
        control.ColumnHeaderAppearance.ImageHAlign = HAlign.Center;
        control.ColumnHeaderAppearance.ImageVAlign = VAlign.Middle;

        //  Set ColumnHeaderImageSize to a size that is large
        //  enough to display an analog clock image; set the
        //  ColumnWidth property to a slightly larger size,
        //  and set MinimumColumnResizeWidth as well so the user
        //  can't resize the headers any smaller than that size.
        control.ColumnHeaderImageSize = ClockSize;
        control.ColumnWidth = ClockSize.Width + Padding;
        control.MinimumColumnResizeWidth = control.ColumnWidth;

        //  Handle the ColumnHeaderInitializing event so we can
        //  show an image on the header instead of the text, and
        //  the ColumnHeaderToolTipDisplaying event so we can force
        //  a tooltip to be displayed.
        control.ColumnHeaderInitializing += new ColumnHeaderInitializingHandler(this.OnColumnHeaderInitializing);
        control.ColumnHeaderToolTipDisplaying += new ColumnHeaderToolTipDisplayingHandler(OnColumnHeaderToolTipDisplaying);
    }

    private void OnColumnHeaderToolTipDisplaying(object sender, ColumnHeaderToolTipDisplayingEventArgs e)
    {
        //  If this is a primary interval header, show the start time
        //  in a tooltip, since there is no text on the header.
        if ( e.HeaderElement != null && e.HeaderElement.DateTimeInterval.IsPrimaryInterval )
        {
            ToolTipInfo toolTipInfo = e.ToolTipInfo;
            toolTipInfo.ToolTipText = e.HeaderElement.DateTimeRange.StartDateTime.ToString(TimeInterval.ShortTimePattern);
            e.ToolTipInfo = toolTipInfo;
        }
    }

    private void OnColumnHeaderInitializing(object sender, ColumnHeaderInitializingEventArgs e)
    {
        if ( e.DateTimeInterval.IsPrimaryInterval )
        {
            //  Create an image of an analog clock, depicting the
            //  start time for this header, and assign it to the
            //  Image property of the e.AppearanceData
            TimeSpan time = e.DateTimeRange.StartDateTime.TimeOfDay;
            Bitmap bmp = ClockImage.GetImage( time, ClockSize, Color.Black, Color.White );
            AppearanceData appData = new AppearanceData();
            appData.Image = bmp;
            e.AppearanceData = appData;

            //  Assign a space character to the text, so that
            //  nothing appears, but a tooltip can still be displayed
            e.Text = " ";
        }
    }
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also