Version

Appearance Property (UltraMonthViewSingleBase)

Returns or sets the Infragistics.Win.AppearanceBase object that controls the objects's formatting
Syntax
'Declaration
 
Public Property Appearance As Infragistics.Win.AppearanceBase
public Infragistics.Win.AppearanceBase Appearance {get; set;}
Remarks

The Appearance property of an object is used to associate the object with an Appearance object that will determine its appearance. The Appearance object has properties that control settings such as color, borders, font, transparency, etc. For many of the objects in the UltraWinSchedule, you do not set formatting properties directly. Instead, you set the properties of an Appearance object, which controls the formatting of the object it is attached to.

There are two ways of working with the Appearance property and assigning the attributes of an SSAppearance object to other objects. One way is to create a new Appearance object, adding it directly to the Appearances collection. Then you assign the new Appearance object to the Appearance property of the object you want to format. This method uses a "named" Appearance object that you must explicitly create (and to which you must assign property settings) before it can be used. For instance, you could create an object in the control's Appearances collection and assign it some values as follows:

UltraMonthViewSingle1.Appearances.Add "New1"

UltraMonthViewSingle1.Appearances("New1").BorderColor = Color.Blue

UltraMonthViewSingle1.Appearances("New1").ForeColor = Color.Red

Creating the object in this way does not apply formatting to any visible part of the control. The object simply exists in the collection with its property values, waiting to be used. To actually use the object, you must assign it to the control's (or another object's) Appearance property:

UltraMonthViewSingle1.Appearance = UltraMonthViewSingle1.Appearances("New1")

In this case, only one Appearance object exists. The control's appearance is governed by the settings of the "New1" object in the collection. Any changes you make to the object in the collection will immediately be reflected in the control.

The second way of working with the Appearance property is to use it to set property values directly, such as:

UltraMonthViewSingle1.Appearance.ForeColor = Color.Blue

In this case, an Appearance object is automatically created by the control. This Appearance object is not a member of an Appearances collection and it does not have a name. It is specific to the object for which it was created; it is an "intrinsic" Appearance object. Changes to the properties of an intrinsic Appearance object are reflected only in the object to which it is attached.

Note that you can assign properties from a named Appearance object to an intrinsic Appearance object without creating a dependency relationship. For example, the following code...

UltraMonthViewSingle1.Appearance.ForeColor = UltraMonthViewSingle1.Appearances("New1").ForeColor

...does not establish a relationship between the foreground color of the intrinsic object and that of the named object. It is simply a one-time assignment of the named object's value to that of the intrinsic object. In this case, two Appearance objects exist - one in the collection and one attached to the control - and they operate independently of one another.

If you wish to assign all the properties of a named object to an intrinsic object at once without creating a dependency relationship, you can use the Clone method of the Appearance object to duplicate its settings and apply them. So if you wanted to apply all the property settings of the named Appearance object "New1" to the control's intrinsic Appearance object, but you did not want changes made to "New1" automatically reflected in the control, you would use the following code:

UltraMonthViewSingle1.Appearance = UltraMonthViewSingle1.Appearances("New1").Clone

Note that the properties of an Appearance object can also operate in a hierarchical fashion. Certain properties can be set to a "use default" value, which indicates to the control that the property should take its setting from the object's parent. This functionality is enabled by default, so that unless you specify otherwise, child objects resemble their parents, and formatting set at higher levels of the control hierarchy is inherited by objects lower in the hierarchy.

Example
This example configures the UltraMonthViewSingle control to use the settings of its Appearance property rather than the Appearances of its associated CalendarLook object.

Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports Infragistics.Win.UltraWinSchedule.MonthViewSingle

Private Sub ApplyControlAppearance()

        '	Create a new Appearance object and set a few properties
        Dim appearance As Infragistics.Win.Appearance = New Infragistics.Win.Appearance("BlueGradient")
        appearance.BackColor = Color.White
        appearance.BackColor2 = Color.LightBlue
        appearance.BackGradientStyle = GradientStyle.ForwardDiagonal

        '	Add the new appearance to the control's Appearances collection
        '	in case we want to use it again later
        Me.ultraMonthViewSingle1.Appearances.Add(appearance)

        '	Set the control's Appearance property to the new appearance
        '	Note that we can use the appearance object's Key property to
        '	access it, which is especially useful when there are several
        '	members in the Appearances collection, because referring to
        '	it by its index can then become confusing.
        Me.ultraMonthViewSingle1.Appearance = Me.ultraMonthViewSingle1.Appearances("BlueGradient")

        '	Make the associated UltraCalendarLook object's DayAppearance and WeekAppearance
        '	transparent, so that the control's Appearance settings will be visually apparent.
        '
        '	It helps to think of the control's various appearances as "layers". The foremost
        '	layer is the UltraCalendarLook object's DayAppearance "behind" that is the 
        '	WeekAppearance, and behind that is the control's own Appearance.
        '
        Me.ultraMonthViewSingle1.CalendarLook.DayAppearance.BackColorAlpha = Alpha.Transparent
        Me.ultraMonthViewSingle1.CalendarLook.WeekAppearance.BackColorAlpha = Alpha.Transparent

        '	We can also set the degree of transparency by using the Appearance
        '	object's AlphaLevel property in conjunction with a BackColorAlpha setting
        '	of Alpha.UseAlphaLevel. The AlphaLevel property corresponds to the color's
        '	luminosity (or opacity) a value of 255 results in no transparency at all, meaning
        '	that the color is fully opaque. Reducing the value results in reducing the opacity,
        '	or put another way, increasing the transparency.
        '
        '	Set the DayOfWeekHeaderAppearance's Alpha level to 64, so that the DayOfWeek
        '	headers are mostly but not fully transparent.
        Me.ultraMonthViewSingle1.CalendarLook.DayOfWeekHeaderAppearance.AlphaLevel = 64
        Me.ultraMonthViewSingle1.CalendarLook.DayOfWeekHeaderAppearance.BackColorAlpha = Alpha.UseAlphaLevel

        '	If the DayAppearance is set but the SelectedDayAppearance was not, the
        '	SelectedDayAppearance will use the DayAppearance settings. This is an
        '	example of the appearance resolution hierarchy in action when an appearance
        '	is explicitly set, it is used, and if it is not explicitly set, the next most relevant
        '	appearance is used if it is explicitly set, and so on.
        '
        '	Right now, the DayAppearance's BackColorAlpha is set to Alpha.Transparent,
        '	and the SelectedDayAppearance's BackColorAlpha is not set at all, so the
        '	SelectedDayAppearance is going to pick up the DayAppearance's BackColorAlpha.
        '	We can prevent this by explicitly setting the SelectedDayAppearance's BackColorAlpha
        '	by doing this, we cause the appearance resolution hierarchy to stop at the first
        '	explicit setting.
        Me.ultraMonthViewSingle1.CalendarLook.SelectedDayAppearance.BackColorAlpha = Alpha.Opaque

    End Sub
using Infragistics.Win;
using Infragistics.Win.UltraWinSchedule;
using Infragistics.Win.UltraWinSchedule.MonthViewSingle;
using System.Diagnostics;

		private void ApplyControlAppearance()
		{

			//	Create a new Appearance object and set a few properties
			Infragistics.Win.Appearance appearance = new Infragistics.Win.Appearance( "BlueGradient" );
			appearance.BackColor = Color.White;
			appearance.BackColor2 = Color.LightBlue;
			appearance.BackGradientStyle = GradientStyle.ForwardDiagonal;

			//	Add the new appearance to the control's Appearances collection
			//	in case we want to use it again later
			this.ultraMonthViewSingle1.Appearances.Add( appearance );

			//	Set the control's Appearance property to the new appearance
			//	Note that we can use the appearance object's Key property to
			//	access it, which is especially useful when there are several
			//	members in the Appearances collection, because referring to
			//	it by its index can then become confusing.
			this.ultraMonthViewSingle1.Appearance = this.ultraMonthViewSingle1.Appearances[ "BlueGradient" ];

			//	Make the associated UltraCalendarLook object's DayAppearance and WeekAppearance
			//	transparent, so that the control's Appearance settings will be visually apparent.
			//
			//	It helps to think of the control's various appearances as "layers". The foremost
			//	layer is the UltraCalendarLook object's DayAppearance; "behind" that is the 
			//	WeekAppearance, and behind that is the control's own Appearance.
			//
			this.ultraMonthViewSingle1.CalendarLook.DayAppearance.BackColorAlpha = Alpha.Transparent;
			this.ultraMonthViewSingle1.CalendarLook.WeekAppearance.BackColorAlpha = Alpha.Transparent;

			//	We can also set the degree of transparency by using the Appearance
			//	object's AlphaLevel property in conjunction with a BackColorAlpha setting
			//	of Alpha.UseAlphaLevel. The AlphaLevel property corresponds to the color's
			//	luminosity (or opacity); a value of 255 results in no transparency at all, meaning
			//	that the color is fully opaque. Reducing the value results in reducing the opacity,
			//	or put another way, increasing the transparency.
			//
			//	Set the DayOfWeekHeaderAppearance's Alpha level to 64, so that the DayOfWeek
			//	headers are mostly but not fully transparent.
			this.ultraMonthViewSingle1.CalendarLook.DayOfWeekHeaderAppearance.AlphaLevel = 64;
			this.ultraMonthViewSingle1.CalendarLook.DayOfWeekHeaderAppearance.BackColorAlpha = Alpha.UseAlphaLevel;

			//	If the DayAppearance is set but the SelectedDayAppearance was not, the
			//	SelectedDayAppearance will use the DayAppearance settings. This is an
			//	example of the appearance resolution hierarchy in action; when an appearance
			//	is explicitly set, it is used, and if it is not explicitly set, the next most relevant
			//	appearance is used if it is explicitly set, and so on.
			//
			//	Right now, the DayAppearance's BackColorAlpha is set to Alpha.Transparent,
			//	and the SelectedDayAppearance's BackColorAlpha is not set at all, so the
			//	SelectedDayAppearance is going to pick up the DayAppearance's BackColorAlpha.
			//	We can prevent this by explicitly setting the SelectedDayAppearance's BackColorAlpha;
			//	by doing this, we cause the appearance resolution hierarchy to stop at the first
			//	explicit setting.
			this.ultraMonthViewSingle1.CalendarLook.SelectedDayAppearance.BackColorAlpha = Alpha.Opaque;

		}
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