'宣言 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 コレクション内にオブジェクトを作成して値を割り当てるには、次のように記述します。
UltraMonthViewSingle1.Appearances.Add "New1"
UltraMonthViewSingle1.Appearances("New1").BorderColor = Color.Blue
UltraMonthViewSingle1.Appearances("New1").ForeColor = Color.Red
この方法でオブジェクトを作成すると、コントロールの表示部分に書式は適用されません。オブジェクトはプロパティ値が設定された状態でコレクション内に存在するだけであり、使用されるまで待機しています。実際にこのオブジェクトを使用するには、コントロール(または別のオブジェクト)の Appearance プロパティにそのオブジェクトを割り当てる必要があります。
UltraMonthViewSingle1.Appearance = UltraMonthViewSingle1.Appearances("New1")
この場合、存在している Appearance オブジェクトは 1 つだけです。コントロールの外観は、コレクション内の「New1」オブジェクトの設定によって決まります。コレクション内のオブジェクトに変更を加えると、その変更は即時にコントロールに反映されます。
Appearance プロパティのもう 1 つの使用方法は、Appearanceプロパティに直接プロパティ値を設定する方法です。次に例を示します。
UltraMonthViewSingle1.Appearance.ForeColor = Color.Blue
この場合は、コントロールによって自動的に Appearance オブジェクトが作成されます。この Appearance オブジェクトは Appearances コレクションのメンバーではなく、名前はありません。このオブジェクトは、作成対象のオブジェクトに固有の「組み込み」Appearanceオブジェクトです。組み込み Appearance オブジェクトのプロパティを変更すると、それが属するオブジェクト内でのみ、その変更が反映されます。
従属関係を作成せずに、名前付き Appearance オブジェクトのプロパティを組み込み Appearance オブジェクトに割り当てることができます。たとえば、次のようなコードがあるとします。
UltraMonthViewSingle1.Appearance.ForeColor = UltraMonthViewSingle1.Appearances("New1").ForeColor
この例では、組み込みオブジェクトの前景色と名前付きオブジェクトの前景色の間に関係は 確立されません 。これは単に名前付きオブジェクトの値を組み込みオブジェクトの値に1回限りで割り当てているだけです。この場合は 2 つの Appearance オブジェクトが存在し、1 つはコレクション内にあり、もう 1 つはコントロールに関連付けられ、互いに独立して動作します。
従属関係を作成せずに名前付きオブジェクトのすべてのプロパティを組み込みオブジェクトに一度に割り当てる場合、Appearance オブジェクトの Clone メソッドを使用して設定を複製し、それを適用することができます。名前付き Appearance オブジェクト「New1」のすべてのプロパティ設定をコントロールの組み込み Appearance オブジェクトに適用する場合に、「New1」への変更をコントロールに自動的に反映したくないときは、次のコードを使用します。
UltraMonthViewSingle1.Appearance = UltraMonthViewSingle1.Appearances("New1").Clone
Appearance オブジェクトのプロパティは、階層式に適用することも可能です。プロパティの中には「use default」値に設定できるものがあります。 これは、オブジェクトの親からプロパティの設定を取得することを意味します。この機能はデフォルトで有効になっているため、設定を変更しないかぎり、子オブジェクトは親に類似し、コントロールの上位階層で設定された書式は下位のオブジェクトに引き継がれます。
Imports Infragistics.Win Imports Infragistics.Win.UltraWinSchedule Imports Infragistics.Win.UltraWinSchedule.MonthViewSingle Private Sub ApplyControlAppearance() ' 新しい Appearance オブジェクトを作成し、プロパテイを設定します Dim appearance As Infragistics.Win.Appearance = New Infragistics.Win.Appearance("BlueGradient") appearance.BackColor = Color.White appearance.BackColor2 = Color.LightBlue appearance.BackGradientStyle = GradientStyle.ForwardDiagonal ' コントロールの Appearances コレクションに新しい外観を追加します ' 再利用できます Me.ultraMonthViewSingle1.Appearances.Add(appearance) ' コントロールの Appearance プロパティを新しい外観に設定します ' 外観オブジェクトの Key プロパティを使用して外観にアクセスできます ' Appearances コレクションにメンバーが複数ある場合に、 ' インデックスの代わりに Key を使用することは ' 特に有用です Me.ultraMonthViewSingle1.Appearance = Me.ultraMonthViewSingle1.Appearances("BlueGradient") ' コントロールの Appearance 設定を視覚的に強調するために、関連付けられた ' UltraCalendarLook オブジェクトの DayAppearance および WeekAppearance を透明にします ' ' コントロールのさまざまな外観は「レイヤー」のようなものです最前面のレイヤーは ' UltraCalendarLook オブジェクトの DayAppearance で、 ' 次は WeekAppearance、最後のはコントロールの Appearance です ' Me.ultraMonthViewSingle1.CalendarLook.DayAppearance.BackColorAlpha = Alpha.Transparent Me.ultraMonthViewSingle1.CalendarLook.WeekAppearance.BackColorAlpha = Alpha.Transparent ' Appearance オブジェクトの AlphaLevel プロパティを設定し、 ' BackColorAlpha を Alpha.UseAlphaLevel に設定して ' 透過度を設定できますAlphaLevel プロパティは色の光度または不透明度に相対します ' 値を 255 に設定すると、透明度がないため、 ' 色は完全に不透明になります値を減らすと不透明度も減少します ' つまり、透明度が増加します ' ' ほとんど透明に近い DayOfWeek ヘッダーにするには、DayOfWeekHeaderAppearance の ' Alpha レベルを 64 に設定します Me.ultraMonthViewSingle1.CalendarLook.DayOfWeekHeaderAppearance.AlphaLevel = 64 Me.ultraMonthViewSingle1.CalendarLook.DayOfWeekHeaderAppearance.BackColorAlpha = Alpha.UseAlphaLevel ' DayAppearance が設定されていて SelectedDayAppearance が設定されていない場合、 ' SelectedDayAppearance は DayAppearance の設定を使用しますこれは ' 外観の解決階層の例です。外観が明示的に設定された場合、 ' その外観を使用します。明示的に設定されない場合、次に適切な設定された ' 外観を使用します ' ' この例では、DayAppearance の BackColorAlpha は Alpha.Transparent に設定し、 ' SelectedDayAppearance の BackColorAlpha は設定されていないため、 ' SelectedDayAppearance は DayAppearance の BackColorAlpha を使用します ' これを防止するには、SelectedDayAppearance の BackColorAlpha を明示的に設定できます ' これにより、外観の解決階層は最初の明示的な設定を ' 使用します 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() { // 新しい Appearance オブジェクトを作成し、プロパテイを設定します Infragistics.Win.Appearance appearance = new Infragistics.Win.Appearance( "BlueGradient" ); appearance.BackColor = Color.White; appearance.BackColor2 = Color.LightBlue; appearance.BackGradientStyle = GradientStyle.ForwardDiagonal; // コントロールの Appearances コレクションに新しい外観を追加します // 再使用が可能です this.ultraMonthViewSingle1.Appearances.Add( appearance ); // コントロールの Appearance プロパティを新しい外観に設定します // 外観オブジェクトの Key プロパティを使用して外観にアクセスできます // Appearances コレクションに複数メンバーがある場合に、 // インデックスの代わりに Key を使用することは // 特に有用です this.ultraMonthViewSingle1.Appearance = this.ultraMonthViewSingle1.Appearances[ "BlueGradient" ]; // コントロールの Appearance 設定を視覚的に強調するために、関連付けられた // UltraCalendarLook オブジェクトの DayAppearance および WeekAppearance は透明にします // // コントロールのさまざまな外観は「レイヤー」のようなものです最前面のレイヤーは // UltraCalendarLook オブジェクトの DayAppearance で、 // 次は WeekAppearance、最後のはコントロールの Appearance です // this.ultraMonthViewSingle1.CalendarLook.DayAppearance.BackColorAlpha = Alpha.Transparent; this.ultraMonthViewSingle1.CalendarLook.WeekAppearance.BackColorAlpha = Alpha.Transparent; // Appearance オブジェクトの AlphaLevel プロパティを設定し、 // BackColorAlpha を Alpha.UseAlphaLevel に設定して // 透過度を設定できますAlphaLevel プロパティは色の光度または不透明度に相対します // 値を 255 に設定すると、透明度がないため、 // 色は完全に不透明になります値を減らすと不透明度も減少します // つまり、透明度が増加します // // ほとんど透明に近い DayOfWeek ヘッダーにするには、DayOfWeekHeaderAppearance の // Alpha レベルを 64 に設定します this.ultraMonthViewSingle1.CalendarLook.DayOfWeekHeaderAppearance.AlphaLevel = 64; this.ultraMonthViewSingle1.CalendarLook.DayOfWeekHeaderAppearance.BackColorAlpha = Alpha.UseAlphaLevel; // DayAppearance が設定されていて SelectedDayAppearance が設定されていない場合、 // SelectedDayAppearance は DayAppearance の設定を使用しますこれは // 外観の解決階層の例です。外観が明示的に設定される場合、 // その外観を使用します。明示的に設定されない場合、次の設定された // 適切な外観を使用します // // この例では、DayAppearance の BackColorAlpha が Alpha.Transparent に設定されていますが、 // SelectedDayAppearance の BackColorAlpha は設定されていないため、 // SelectedDayAppearance は DayAppearance の BackColorAlpha を使用します // これを防止するには、SelectedDayAppearance の BackColorAlpha を明示的に設定できます // これにより、外観の解決階層は最初の明示的な設定を // 使用します this.ultraMonthViewSingle1.CalendarLook.SelectedDayAppearance.BackColorAlpha = Alpha.Opaque; }