バージョン

DayOfWeekHeadersVisible プロパティ

DayOfWeek ヘッダーが表示されるかどうかを決定します。
シンタックス
'宣言
 
Public Property DayOfWeekHeadersVisible As Boolean
public bool DayOfWeekHeadersVisible {get; set;}
解説

UltraMonthViewSingle コントロールは、DayOfWeek ヘッダーがクリックされた時にイベントを発生させます (DayOfWeekHeadersVisible を参照してください)。

使用例
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports Infragistics.Win.UltraWinSchedule.MonthViewSingle

    Private Sub OptimizeControlForAppointmentDisplay()

        Dim yesterday As DateTime = DateTime.Today.AddDays(-1)
        Dim today As DateTime = DateTime.Today
        Dim tomorrow As DateTime = DateTime.Today.AddDays(1)
        Dim i As Integer

        '	アクティビティを追加します
        '	予定の追加
        If Me.ultraMonthViewSingle1.CalendarInfo.Appointments.Count = 0 Then

            For i = 1 To 5
                Me.ultraMonthViewSingle1.CalendarInfo.Appointments.Add(yesterday, "Yesterday's appointment " + i.ToString())
            Next

            For i = 1 To 3
                Me.ultraMonthViewSingle1.CalendarInfo.Appointments.Add(today, "Today's appointment " + i.ToString())
            Next

            For i = 1 To 10
                Me.ultraMonthViewSingle1.CalendarInfo.Appointments.Add(tomorrow, "Tomorrow's appointment " + i.ToString())
            Next
        End If

        '	メモの追加
        If Me.ultraMonthViewSingle1.CalendarInfo.Notes.Count = 0 Then

            Me.ultraMonthViewSingle1.CalendarInfo.Notes.Add(yesterday, "Yesterday's note " + i.ToString())

            For i = 1 To 2
                Me.ultraMonthViewSingle1.CalendarInfo.Notes.Add(today, "Today's note " + i.ToString())
            Next
            For i = 1 To 5
                Me.ultraMonthViewSingle1.CalendarInfo.Notes.Add(tomorrow, "Tomorrow's note " + i.ToString())
            Next
        End If

        '	休日の追加
        If Me.ultraMonthViewSingle1.CalendarInfo.Holidays.Count = 0 Then
            Me.ultraMonthViewSingle1.CalendarInfo.Holidays.Add(yesterday, "My 2-day Holiday")
        End If

        '	最もアクティビティがある日を決定しますStartDateTime プロパティにあるすべての予定の特定の日付の発生を
        '	カウントし、発生の最大数を決定します
        Dim dateWithMostActivity As DateTime = DateTime.Today
        Dim count As Integer = 0
        Dim tempCount As Integer = 0
        Dim outer As Appointment
        Dim inner As Appointment
        For Each outer In Me.ultraMonthViewSingle1.CalendarInfo.Appointments
            tempCount = 0
            For Each inner In Me.ultraMonthViewSingle1.CalendarInfo.Appointments
                If inner.StartDateTime.Date = outer.StartDateTime Then tempCount += 1
            Next
            '	以前の日付よりこの日付に予定が多くある場合、
            '	カウントを変更し、新しい dateWithMostActivity を設定します
            If tempCount > count Then
                count = tempCount
                dateWithMostActivity = outer.StartDateTime
            End If
        Next

        '	予定がない場合、何もせずに返します
        If count = 0 Then Return

        '	CalendarInfo オブジェクトの FirstDayOfWeek プロパティを
        '	最も予定がある曜日に設定します
        Me.ultraMonthViewSingle1.CalendarInfo.FirstDayOfWeek = dateWithMostActivity.DayOfWeek

        '	表示する曜日以外のすべての DayOfWeek オブジェクトの Visible プロパティを
        '	False に設定します
        Dim dow As Infragistics.Win.UltraWinSchedule.DayOfWeek
        For Each dow In Me.ultraMonthViewSingle1.CalendarInfo.DaysOfWeek
            If dow.DayOfTheWeek <> dateWithMostActivity.DayOfWeek Then dow.Visible = False Else dow.Visible = True
        Next

        '	最もアクティビティがある日のみを表示するには、
        '	VisibleWeeks プロパティを 1 に設定します
        Me.ultraMonthViewSingle1.VisibleWeeks = 1

        '	CalendarInfo オブジェクトの ActiveDay プロパティを
        '	最もアクティビティがある日に設定します
        Me.ultraMonthViewSingle1.CalendarInfo.ActiveDay = Me.ultraMonthViewSingle1.CalendarInfo.GetDay(dateWithMostActivity, True)

        '	その日をビューへ移動して表示します
        Me.ultraMonthViewSingle1.ScrollDayIntoView(dateWithMostActivity, True)

        '	コントロールで予定の表示を最適化するために、
        '	コントロールの ActivityDisplayStyle プロパティを設定すると、
        '	他のアクティビティ (メモおよび休日) は表されません
        Me.ultraMonthViewSingle1.ActivityDisplayStyle = ActivityDisplayStyleEnum.Appointments

        '	表示を更新するには、すべての UIElements をダーティして確認します
        Me.ultraMonthViewSingle1.UIElement.DirtyChildElements()
        Me.ultraMonthViewSingle1.UIElement.VerifyChildElements()

        '	最もアクティビティがある日と関連付ける UIElement を取得しますMoreActivityIndicatorVisible プロパティを使用すると、
        '	表示されていない予定があるかどうかを決定します存在する場合、DayOfWeekHeadersVisible プロパティを False に設定すると、
        '	予定を表示するスペースを少し増やしますActiveDay を最も予定がある日に設定すると、GetDescendant メソッドで
        '   ActiveDay を 'context' パラメーターとして使用できることに注意してください
        Dim dayUI As Infragistics.Win.UltraWinSchedule.MonthViewSingle.DayUIElement = Me.ultraMonthViewSingle1.UIElement.GetDescendant(GetType(DayUIElement), Me.ultraMonthViewSingle1.CalendarInfo.ActiveDay)
        If Not dayUI Is Nothing And dayUI.MoreActivityIndicatorVisible Then
            Me.ultraMonthViewSingle1.DayOfWeekHeadersVisible = False

            '   DayOfWeek ヘッダーを非表示にしているため曜日の名前が
            '   表示されていないので、日ヘッダーに名前を表示されるために
            '   DayDisplayStyle プロパティを Full に設定します
            Me.ultraMonthViewSingle1.DayDisplayStyle = DayDisplayStyleEnum.Full
        End If

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

		private void OptimizeControlForAppointmentDisplay()
		{

			//	日付変数を宣言します
			DateTime yesterday = DateTime.Today.AddDays( -1.0F );
			DateTime today = DateTime.Today;
			DateTime tomorrow = DateTime.Today.AddDays( 1.0F );

			//	アクティビティを追加します
			//	予定の追加
			if ( this.ultraMonthViewSingle1.CalendarInfo.Appointments.Count == 0 )
			{
				for ( int i = 1; i <= 5; i ++ )
					this.ultraMonthViewSingle1.CalendarInfo.Appointments.Add(yesterday, "Yesterday's appointment " + i.ToString() );

				for ( int i = 1; i <= 3; i ++ )
					this.ultraMonthViewSingle1.CalendarInfo.Appointments.Add(today, "Today's appointment " + i.ToString() );

				for ( int i = 1; i <= 10; i ++ )
					this.ultraMonthViewSingle1.CalendarInfo.Appointments.Add(tomorrow, "Tomorrow's appointment " + i.ToString() );
			}

			//	メモの追加
			if ( this.ultraMonthViewSingle1.CalendarInfo.Notes.Count == 0 )
			{
				for ( int i = 1; i <= 1; i ++ )
					this.ultraMonthViewSingle1.CalendarInfo.Notes.Add(yesterday, "Yesterday's note " + i.ToString() );

				for ( int i = 1; i <= 2; i ++ )
					this.ultraMonthViewSingle1.CalendarInfo.Notes.Add(today, "Today's note " + i.ToString() );

				for ( int i = 1; i <= 5; i ++ )
					this.ultraMonthViewSingle1.CalendarInfo.Notes.Add(tomorrow, "Tomorrow's note " + i.ToString() );
			}

			//	休日の追加
			if ( this.ultraMonthViewSingle1.CalendarInfo.Holidays.Count == 0 )
				this.ultraMonthViewSingle1.CalendarInfo.Holidays.Add(yesterday, "My 2-day Holiday" );


			//	最もアクティビティがある日を決定します
			//	すべての予定の StartDateTime プロパティにある特定の日付の発生を
			//	カウントし、発生の最大数を
			//	決定します
			//	
			DateTime dateWithMostActivity = DateTime.Today;
			int count = 0, tempCount = 0;
			foreach( Appointment outer in this.ultraMonthViewSingle1.CalendarInfo.Appointments )
			{
				tempCount = 0;
				foreach( Appointment inner in this.ultraMonthViewSingle1.CalendarInfo.Appointments )
				{
					if ( inner.StartDateTime.Date == outer.StartDateTime.Date )
						tempCount++;
				}

				//	以前の日付よりこの日付に予定が多くある場合、
				//	カウントを変更し、新しい dateWithMostActivity を設定します
				if ( tempCount > count )
				{
					count = tempCount;
					dateWithMostActivity = outer.StartDateTime;
				}
			}

			//	予定がない場合、何もせずに返します
			if ( count == 0 )
				return;

			//	CalendarInfo オブジェクトの FirstDayOfWeek プロパティを
			//	最も予定がある曜日に設定します
			this.ultraMonthViewSingle1.CalendarInfo.FirstDayOfWeek = (FirstDayOfWeek)( dateWithMostActivity.DayOfWeek );

			//	表示する曜日以外のすべての DayOfWeek オブジェクトの Visible プロパティを
			//	False に設定します
			foreach( Infragistics.Win.UltraWinSchedule.DayOfWeek dow in this.ultraMonthViewSingle1.CalendarInfo.DaysOfWeek )
			{
				if ( (int)(dow.DayOfTheWeek) != (int)(dateWithMostActivity.DayOfWeek) )
					dow.Visible = false;
				else
					dow.Visible = true;
			}

			//	最もアクティビティがある日のみを表示するには、
			//	VisibleWeeks プロパティを 1 に設定します
			this.ultraMonthViewSingle1.VisibleWeeks = 1;

			//	CalendarInfo オブジェクトの ActiveDay プロパティを
			//	最もアクティビティがある日に設定します
			this.ultraMonthViewSingle1.CalendarInfo.ActiveDay = this.ultraMonthViewSingle1.CalendarInfo.GetDay( dateWithMostActivity, true );

			//	その日をビューへ移動して表示します
			this.ultraMonthViewSingle1.ScrollDayIntoView( dateWithMostActivity, true );

			//	コントロールで予定の表示を最適化するために、
			//	コントロールの ActivityDisplayStyle プロパティを設定すると、
			//	他のアクティビティ (メモおよび休日) は表されません
			this.ultraMonthViewSingle1.ActivityDisplayStyle = ActivityDisplayStyleEnum.Appointments;

			//	表示を更新するには、すべての UIElements をダーティして確認します
			this.ultraMonthViewSingle1.UIElement.DirtyChildElements();
			this.ultraMonthViewSingle1.UIElement.VerifyChildElements();

			//	アクティビティの最大数がある日と関連付ける UIElement を
			//	取得しますMoreActivityIndicatorVisible プロパティを使用すると、
			//	表示されていない予定がある
			//	かどうかを決定します存在する場合、
			//	DayOfWeekHeadersVisible プロパティを False に設定すると、
			//	予定を表示するスペースを少し増やします
			//
			//	ActiveDay を最も予定がある日に設定したため、
			//	GetDescendant メソッドで
			//	ActiveDay を 'context' パラメーターとして使用できることに注意してください
			DayUIElement dayUI = this.ultraMonthViewSingle1.UIElement.GetDescendant( typeof(DayUIElement), this.ultraMonthViewSingle1.CalendarInfo.ActiveDay ) as DayUIElement;
			if ( dayUI != null && dayUI.MoreActivityIndicatorVisible )
			{
				this.ultraMonthViewSingle1.DayOfWeekHeadersVisible = false;

				//   DayOfWeek ヘッダーを非表示にするため、曜日の名前が
				//   表示されていないので、名前を日ヘッダーに表示するために
				//   DayDisplayStyle プロパティを Full に設定します
				this.ultraMonthViewSingle1.DayDisplayStyle = DayDisplayStyleEnum.Full;

			}

		}
参照