バージョン

Color クラスによって、ほとんど苦労せずに任意の RGB カラーをレポート コンテンツに追加できます。Color クラスは複数のシナリオを説明するために複数のコンストラクタがあります。Color クラスの新しいインスタンスを初期化するよりもむしろ、使用可能な138 の事前に定義された色を含む Colors オブジェクトにアクセスすることも可能です。

色の使用は、 ColorBlend クラスを使用して ダイレクト グラデーション ブラシのためにカスタムのカラー ブレンドを作成すると面白くなってきます。ColorBlend クラスは線の上の位置にマップされた色のコレクションです。これは別名 ColorBlendEntry として知られています。各 ColorBlendEntry には、Color に設定可能な Color プロパティと、グラデーションのパスに沿って位置を表すフロートに設定可能な Position プロパティがあります。Position プロパティは、0F から 1.0F のスケール上の値を認めます。

DocumentEngine Colors 01.png

以下のコードは、Color クラスのさまざまなコンストラクタを通して複数の色をインスタンス化します。次にコードは ColorBlend オブジェクト、矩形、およびダイレクトの線形グラデーション ブラシを定義します。次にこれらのオブジェクトを使用して、Canvas に矩形を描画します。

  1. 赤、緑、青の 3 色を定義します。

Visual Basic の場合:

Imports Infragistics.Documents.Reports.Reports.Report
Imports Infragistics.Documents.Reports.Reports.Graphics
.
.
.
' 新しい System カラーを作成します。
Dim red As New Color(System.Drawing.Color.Red)
' RGB 値から色を作成します。
Dim green As New Color(0, 255, 0)
' Colors クラスから事前に定義したカラーを作成します。
Dim blue As Color = Colors.Blue

C# の場合:

using Infragistics.Documents.Reports.Reports.Report;
using Infragistics.Documents.Reports.Reports.Graphics;
.
.
.
// 新しい System カラーを作成します。
Color red = new Color(System.Drawing.Color.Red);
// RGB 値から色を作成します。
Color green = new Color(0, 255, 0);
// Colors クラスから事前に定義したカラーを作成します。
Color blue = Colors.Blue;
  1. カスタムのカラー ブレンドを作成します。

Visual Basic の場合:

' 新しいカラー ブレンドを作成します。
Dim colorBlend As New ColorBlend()
' 7 つの色を ColorBlend に追加します。各 ColorBlendEntry
' コンストラクタは、色と線上の位置を表す
' フロートを認めます。
colorBlend.Add(New ColorBlendEntry(red, 0.0F))
colorBlend.Add(New ColorBlendEntry(Colors.Orange, 0.15F))
colorBlend.Add(New ColorBlendEntry(Colors.Yellow, 0.3F))
colorBlend.Add(New ColorBlendEntry(green, 0.45F))
colorBlend.Add(New ColorBlendEntry(blue, 0.6F))
colorBlend.Add(New ColorBlendEntry(Colors.Indigo, 0.75F))
colorBlend.Add(New ColorBlendEntry(Colors.Violet, 0.9F))

C# の場合:

// 新しいカラー ブレンドを作成します。
ColorBlend colorBlend = new ColorBlend();
// 7 つの色を ColorBlend に追加します。各 ColorBlendEntry
// コンストラクタは、色と線上の位置を表す
// フロートを認めます。
colorBlend.Add(new ColorBlendEntry(red, 0F));
colorBlend.Add(new ColorBlendEntry(Colors.Orange, .15F));
colorBlend.Add(new ColorBlendEntry(Colors.Yellow, .3F));
colorBlend.Add(new ColorBlendEntry(green, .45F));
colorBlend.Add(new ColorBlendEntry(blue, .60F));
colorBlend.Add(new ColorBlendEntry(Colors.Indigo, .75F));
colorBlend.Add(new ColorBlendEntry(Colors.Violet, .9F));
  1. 矩形を定義します。

Visual Basic の場合:

' 線形グラデーションをバインドする矩形を作成します。
Dim rect As New Rectangle(New Point(0, 100), New Size(600, 200))

C# の場合:

// 線形グラデーションをバインドする矩形を作成します。
Rectangle rect = new Rectangle(new Point(0,100), new Size(600, 200));
  1. LinearGradientDirectBrush を定義します。

Visual Basic の場合:

' ColorBlend を使用するダイレクトの線形グラデーション ブラシを作成します。
Dim linearDirect As New LinearGradientDirectBrush( _
	colorBlend, rect, New Matrix())

C# の場合:

// ColorBlend を使用するダイレクトの線形グラデーション ブラシを作成します。
LinearGradientDirectBrush linearDirect =
  new LinearGradientDirectBrush(colorBlend, rect, new Matrix());
  1. キャンバスを作成し、矩形を描画します。

Visual Basic の場合:

Dim canvas As ICanvas = section1.AddCanvas()
' より目立ちやすくするためにキャンバス上のいくつかのプロパティを設定します。
canvas.Height = New RelativeHeight(100)
canvas.Width = New RelativeWidth(100)
canvas.Borders = New Borders(New Pen(Colors.Black, 3), 5)
canvas.Background = New Background(Brushes.GhostWhite)
' PaintMode が Fill の場合、キャンバスのブラシが使用されます。
' PaintMode が Stroke の場合、ペンが使用されます。FillStroke
' は両方が組み合わされて使用されます。
canvas.Pen = New Pen(Colors.Black)
' キャンバスのブラシを、以前に作成したダイレクト線形グラデーション
' に設定します。
canvas.Brush = linearDirect
' 矩形を描画します。
canvas.DrawRectangle(0, 100, 600, 200, PaintMode.Fill)

C# の場合:

// キャンバスをセクションに追加します。
ICanvas canvas = section1.AddCanvas();
// より目立ちやすくするためにキャンバス上のいくつかのプロパティを設定します。
canvas.Height = new RelativeHeight(100);
canvas.Width = new RelativeWidth(100);
canvas.Borders = new Borders(new Pen(Colors.Black, 3), 5);
canvas.Background = new Background(Brushes.GhostWhite);
// PaintMode が Fill の場合、キャンバスのブラシが使用されます。
// PaintMode が Stroke の場合、ペンが使用されます。FillStroke
// は両方が組み合わされて使用されます。
canvas.Pen = new Pen(Colors.Black);
// キャンバスのブラシを、以前に作成したダイレクト線形グラデーション
// に設定します。
canvas.Brush = linearDirect;
// 矩形を描画します。
canvas.DrawRectangle(0, 100, 600, 200, PaintMode.Fill);