バージョン

Appearance プロパティ (UltraDayView)

Appearance オブジェクトのフォーマッティングを制御する オブジェクトを返すか設定します。
シンタックス
'宣言
 
Public Property Appearance As Infragistics.Win.AppearanceBase
public Infragistics.Win.AppearanceBase Appearance {get; set;}
解説

オブジェクトの Appearance プロパティを使用して、外観を決定する Appearance オブジェクトにオブジェクトを関連付けます。Appearanceオブジェクトには、色、境界線、フォント、透明度などの設定を制御するプロパティがあります。UltraWinScheduleのオブジェクトでは、ほとんどの場合、書式関連のプロパティを直接設定しません。その代わりに Appearance オブジェクトのプロパティを設定することで、その Appearance オブジェクトが関連付けられているオブジェクトの書式設定を制御します。

Appearance プロパティを使用してSSAppearance オブジェクトの属性を他のオブジェクトに割り当てるには、2 つの方法があります。1つは、新しい Appearance オブジェクトを作成し、それを Appearances コレクションに直接追加します。これで新しい Appearance オブジェクトを、書式設定したいオブジェクトの Appearance プロパティに割り当てます。この方法では、事前に明示的に作成してプロパティの設定を割り当てなければならない「名前付き」Appearance オブジェクトを使用します。たとえば、コントロールの Appearances コレクション内にオブジェクトを作成して値を割り当てるには、次のように記述します。

UltraDayView1.Appearances.Add "New1"

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

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

この方法でオブジェクトを作成すると、コントロールの表示部分に書式は適用されません。オブジェクトはプロパティ値が設定された状態でコレクション内に存在するだけであり、使用されるまで待機しています。実際にこのオブジェクトを使用するには、コントロール (または別のオブジェクト) の Appearance プロパティにそのオブジェクトを割り当てる必要があります。

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

この場合、存在している Appearance オブジェクトは 1 つだけです。コントロールの外観は、コレクション内の「New1」オブジェクトの設定によって決まります。コレクション内のオブジェクトに変更を加えると、その変更は即時にコントロールに反映されます。

Appearance プロパティのもう 1 つの使用方法は、Appearanceプロパティに直接プロパティ値を設定する方法です。次に例を示します。

UltraDayViewSingle1.Appearance.ForeColor = Color.Blue

この場合は、コントロールによって自動的に Appearance オブジェクトが作成されます。この Appearance オブジェクトは Appearances コレクションのメンバーではなく、名前はありません。このオブジェクトは、作成対象のオブジェクトに固有の「組み込み」Appearanceオブジェクトです。組み込み Appearance オブジェクトのプロパティを変更すると、それが属するオブジェクト内でのみ、その変更が反映されます。

従属関係を作成せずに、名前付き Appearance オブジェクトのプロパティを組み込み Appearance オブジェクトに割り当てることができます。たとえば、次のようなコードがあるとします。

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

この例では、組み込みオブジェクトの前景色と名前付きオブジェクトの前景色の間に関係は 確立されません 。これは単に名前付きオブジェクトの値を組み込みオブジェクトの値に1回限りで割り当てているだけです。この場合は 2 つの Appearance オブジェクトが存在し、1 つはコレクション内にあり、もう 1 つはコントロールに関連付けられ、互いに独立して動作します。

従属関係を作成せずに名前付きオブジェクトのすべてのプロパティを組み込みオブジェクトに一度に割り当てる場合、Appearance オブジェクトの Clone メソッドを使用して設定を複製し、それを適用することができます。名前付き Appearance オブジェクト「New1」のすべてのプロパティ設定をコントロールの組み込み Appearance オブジェクトに適用する場合に、「New1」への変更をコントロールに自動的に反映したくないときは、次のコードを使用します。

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

Appearance オブジェクトのプロパティは、階層式に適用することも可能です。プロパティの中には「use default」値に設定できるものがあります。 これは、オブジェクトの親からプロパティの設定を取得することを意味します。この機能はデフォルトで有効になっているため、設定を変更しないかぎり、子オブジェクトは親に類似し、コントロールの上位階層で設定された書式は下位のオブジェクトに引き継がれます。

使用例
Imports System.Diagnostics
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

		' Initialize UltraDayView control level properties.

		' Add a gradient backcolor to the AllDayEventArea
		Me.UltraDayView1.AllDayEventAreaAppearance.BackColor = Color.CadetBlue
		Me.UltraDayView1.AllDayEventAreaAppearance.BackColor2 = Color.Blue
		Me.UltraDayView1.AllDayEventAreaAppearance.BackGradientStyle = GradientStyle.Horizontal


		' Change the control's forecolor to dark blue.
		Me.UltraDayView1.AllDayEventAreaAppearance.ForeColor = Color.Blue


		' Set AutoAppointmentDialog to true.  This will cause the Appointment dialog
		' to be automaticall displayed when the user double-clicks on an appointment
		' or time slot.
		Me.UltraDayView1.AutoAppointmentDialog = True


		' Change the border style to raised.
		Me.UltraDayView1.BorderStyle = UIElementBorderStyle.Raised


		' Check the control's current state - if there is an appointment currently in edit
		' write a message to the output window.
		If ((Me.UltraDayView1.CurrentState And UltraDayViewState.AppointmentInEdit) <> 0) Then
			Debug.WriteLine("Appointment in edit")
		End If

		' Set come edit appearance colors.
		Me.UltraDayView1.EditAppearance.BackColor = Color.Black
		Me.UltraDayView1.EditAppearance.ForeColor = Color.Green


		' If the first visible time slot's starting time is equal to 12, display a message
		' in the output window.
		If (Me.UltraDayView1.FirstVisibleTimeSlot.StartTime.Hour = 12) Then
			Debug.WriteLine("The noontime time slot is positioned at the top of the day view.")
		End If

		' Hide the time slot descriptor area.
		Me.UltraDayView1.HideTimeSlotDescriptorArea = True


		' Set the time bar color for time slots with no activity to Gray.
		Me.UltraDayView1.IdleTimeBarColor = Color.Gray


		' Change the backcolor for the time slots.
		Me.UltraDayView1.NonWorkingHourTimeSlotAppearance.BackColor = Color.CadetBlue
		Me.UltraDayView1.WorkingHourTimeSlotAppearance.BackColor = Color.LightBlue


		' Make sure the dayview's scrollbar is visible.
		Me.UltraDayView1.ScrollbarVisible = True


		' Change the backcolor for selected time slots if the currently selected time
		' starts before noon.
		If (Me.UltraDayView1.SelectedTimeSlotRange.StartDateTime.Hour < 12) Then
			Me.UltraDayView1.SelectedTimeSlotAppearance.BackColor = Color.CadetBlue
		End If

		' Change the backcolor of the selected visible day.
		Me.UltraDayView1.SelectedVisibleDayAppearance.BackColor = Color.Red


		' Look at each selected visible day and display a message in the output window for
		' each day that is in the first week of the year.
		Dim selectedVisibleDay As VisibleDay
		For Each selectedVisibleDay In Me.UltraDayView1.SelectedVisibleDays
			If (selectedVisibleDay.Day.Week.WeekNumber = 1) Then
				Debug.WriteLine("Selected visible day found in week 1. (Date: " + selectedVisibleDay.Date.ToString() + ")")
			End If
		Next


		' Add a gradient the TimeSlotDescriptors.
		Me.UltraDayView1.TimeSlotDescriptorAppearance.BackColor2 = SystemColors.ControlDark
		Me.UltraDayView1.TimeSlotDescriptorAppearance.BackGradientStyle = GradientStyle.Horizontal


		' Set the time slot interval to every 15 minutes.
		Me.UltraDayView1.TimeSlotInterval = TimeSlotInterval.FifteenMinutes


		' Set the backcolor to green for each time slot that starts on the half hour.
		Dim timeSlot As TimeSlot
		For Each timeSlot In Me.UltraDayView1.TimeSlots
			If timeSlot.StartTime.Minute = 30 Then
				timeSlot.NonWorkingHourAppearance.BackColor = Color.Green
				timeSlot.WorkingHourAppearance.BackColor = Color.Green
			End If
		Next


		' Display the DayView control's current dimensions in the output window.
		Debug.WriteLine("The DayView's dimensions are: " + Me.UltraDayView1.UIElement.Rect.Width.ToString() + " x " + Me.UltraDayView1.UIElement.Rect.Height.ToString())


		' Look at each visible day and display a message in the output window for
		' each visible day that falls on monday.
		Dim visibleDay As VisibleDay
		For Each visibleDay In Me.UltraDayView1.SelectedVisibleDays
			If visibleDay.Date.DayOfWeek = System.DayOfWeek.Monday Then
				Debug.WriteLine("Visible day found that falls on a monday. (Date: " + visibleDay.Date.ToString() + ")")
			End If
		Next

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

		private void Form1_Load(object sender, System.EventArgs e)
		{

			// Initialize UltraDayView control level properties.

			// Add a gradient backcolor to the AllDayEventArea
			this.ultraDayView1.AllDayEventAreaAppearance.BackColor		= Color.CadetBlue;
			this.ultraDayView1.AllDayEventAreaAppearance.BackColor2		= Color.Blue;
			this.ultraDayView1.AllDayEventAreaAppearance.BackGradientStyle	= GradientStyle.Horizontal;


			// Change the control's forecolor to dark blue.
			this.ultraDayView1.AllDayEventAreaAppearance.ForeColor		= Color.Blue;


			// Set AutoAppointmentDialog to true.  This will cause the Appointment dialog
			// to be automaticall displayed when the user double-clicks on an appointment
			// or time slot.
			this.ultraDayView1.AutoAppointmentDialog = true;


			// Change the border style to raised.
			this.ultraDayView1.BorderStyle = UIElementBorderStyle.Raised;


			// Check the control's current state - if there is an appointment currently in edit
			// write a message to the output window.
			if ( (this.ultraDayView1.CurrentState & UltraDayViewState.AppointmentInEdit) == UltraDayViewState.AppointmentInEdit)
				Debug.WriteLine("Appointment in edit");


			// Set come edit appearance colors.
			this.ultraDayView1.EditAppearance.BackColor = Color.Black;
			this.ultraDayView1.EditAppearance.ForeColor = Color.Green;


			// If the first visible time slot's starting time is equal to 12, display a message
			// in the output window.
			if (this.ultraDayView1.FirstVisibleTimeSlot.StartTime.Hour == 12)
				Debug.WriteLine("The noontime time slot is positioned at the top of the day view.");


			// Hide the time slot descriptor area.
			 this.ultraDayView1.HideTimeSlotDescriptorArea = true;


			// Set the time bar color for time slots with no activity to Gray.
			this.ultraDayView1.IdleTimeBarColor = Color.Gray;


			// Change the backcolor for the time slots.
			this.ultraDayView1.NonWorkingHourTimeSlotAppearance.BackColor	= Color.CadetBlue;
			this.ultraDayView1.WorkingHourTimeSlotAppearance.BackColor	= Color.LightBlue;
			

			// Make sure the dayview's scrollbar is visible.
			this.ultraDayView1.ScrollbarVisible = true;


			// Change the backcolor for selected time slots if the currently selected time
			// starts before noon.
			if (this.ultraDayView1.SelectedTimeSlotRange.StartDateTime.Hour < 12)
				this.ultraDayView1.SelectedTimeSlotAppearance.BackColor	= Color.CadetBlue;


			// Change the backcolor of the selected visible day.
			this.ultraDayView1.SelectedVisibleDayAppearance.BackColor = Color.Red;


			// Look at each selected visible day and display a message in the output window for
			// each day that is in the first week of the year.
			foreach(VisibleDay selectedVisibleDay in this.ultraDayView1.SelectedVisibleDays)
			{
				if (selectedVisibleDay.Day.Week.WeekNumber == 1)
					Debug.WriteLine("Selected visible day found in week 1. (Date: " + selectedVisibleDay.Date.ToString() + ")");
			}


			// Add a gradient the TimeSlotDescriptors.
			this.ultraDayView1.TimeSlotDescriptorAppearance.BackColor2		= SystemColors.ControlDark;
			this.ultraDayView1.TimeSlotDescriptorAppearance.BackGradientStyle	= GradientStyle.Horizontal;


			// Set the time slot interval to every 15 minutes.
			this.ultraDayView1.TimeSlotInterval = TimeSlotInterval.FifteenMinutes;


			// Set the backcolor to green for each time slot that starts on the half hour.
			foreach(TimeSlot timeSlot in this.ultraDayView1.TimeSlots)
			{
				if (timeSlot.StartTime.Minute == 30)
				{
					timeSlot.NonWorkingHourAppearance.BackColor = Color.Green;
					timeSlot.WorkingHourAppearance.BackColor	= Color.Green;
				}
			}


			// Display the DayView control's current dimensions in the output window.
			Debug.WriteLine("The DayView's dimensions are: " + this.ultraDayView1.UIElement.Rect.Width.ToString() + " x " + this.ultraDayView1.UIElement.Rect.Height.ToString());


			// Look at each visible day and display a message in the output window for
			// each visible day that falls on monday.
			foreach(VisibleDay visibleDay in this.ultraDayView1.SelectedVisibleDays)
			{
				if (visibleDay.Date.DayOfWeek == System.DayOfWeek.Monday)
					Debug.WriteLine("Visible day found that falls on a monday. (Date: " + visibleDay.Date.ToString() + ")");
			}

		}
参照