描画シェイプ

概要

ReoGridは、矩形、楕円、線、ダイヤモンド、角丸矩形、パイシェイプなどの描画シェイプをワークシート上に直接追加することをサポートしています。シェイプはworksheet.FloatingObjectsコレクションを通じて管理され、unvell.ReoGrid.Drawing.Shapes名前空間に属します。

using unvell.ReoGrid.Drawing;
using unvell.ReoGrid.Drawing.Shapes;

ワークシートへのシェイプの追加

シェイプインスタンスを作成し、位置とサイズを設定してから、FloatingObjectsに追加します。

var worksheet = grid.CurrentWorksheet;

var rect = new RectangleShape()
{
    Location = new Graphics.Point(60, 90),
    Size = new Graphics.Size(160, 80),
    Text = "Hello ReoGrid",
};

worksheet.FloatingObjects.Add(rect);

すべてのシェイプはDrawingObjectから継承された同じLocation / Size / Bounds位置指定APIを共有しています。

利用可能なシェイプタイプ

矩形

var rect = new RectangleShape()
{
    Location = new Graphics.Point(60, 90),
    Size = new Graphics.Size(160, 80),
};
worksheet.FloatingObjects.Add(rect);

楕円

var ellipse = new EllipseShape()
{
    Location = new Graphics.Point(60, 90),
    Size = new Graphics.Size(120, 80),
};
worksheet.FloatingObjects.Add(ellipse);

ダイヤモンド

var diamond = new DiamondShape()
{
    Location = new Graphics.Point(60, 90),
    Size = new Graphics.Size(120, 80),
};
worksheet.FloatingObjects.Add(diamond);

角丸矩形

RoundRate(0.0 - 1.0)を使用して、短辺に対する角の丸みを制御します。

var rounded = new RoundedRectangleShape()
{
    Location = new Graphics.Point(60, 90),
    Size = new Graphics.Size(160, 80),
    RoundRate = 0.3f,
};
worksheet.FloatingObjects.Add(rounded);

パイ

var pie = new PieShape()
{
    Location = new Graphics.Point(60, 90),
    Size = new Graphics.Size(120, 120),
    StartAngle = 0f,
    SweepAngle = 270f,
};
worksheet.FloatingObjects.Add(pie);

ブロックアーク

var arc = new BlockArcShape()
{
    Location = new Graphics.Point(60, 90),
    Size = new Graphics.Size(120, 120),
    StartAngle = -90f,
    SweepAngle = 180f,
    ArcWidth = 20f,
};
worksheet.FloatingObjects.Add(arc);

LineStartPointEndPointで位置を指定します。どちらの端にも矢印キャップを追加できます。

var line = new Line()
{
    StartPoint = new Graphics.Point(60, 130),
    EndPoint = new Graphics.Point(220, 130),
};

line.Style.LineWidth = 1.5f;
line.Style.EndCap = Graphics.LineCapStyles.Arrow;

worksheet.FloatingObjects.Add(line);

テキストの設定

ShapeObjectから派生したすべてのシェイプ(Rectangle、Ellipse、Diamondなど)はTextプロパティをサポートしています。

rect.Text = "My Label";

スタイリング

シェイプのStyleプロパティにアクセスして外観をカスタマイズします。

塗りつぶし色

rect.Style.FillColor = Graphics.SolidColor.LightYellow;

線の色と幅

rect.Style.LineColor = Graphics.SolidColor.Navy;
rect.Style.LineWidth = 2.0f;

線のスタイル

rect.Style.LineStyle = Graphics.LineStyles.Dash;

利用可能なLineStylesの値:

説明
Solid実線(デフォルト)
Dash破線
Dot点線
DashDot一点鎖線
DashDotDot二点鎖線

テキストの色と配置

rect.Style.TextColor = Graphics.SolidColor.DarkBlue;
rect.Style.HorizontalAlignment = Drawing.HorizontalAlignment.Center;
rect.Style.VerticalAlignment = Drawing.VerticalAlignment.Middle;

線のキャップスタイル(線シェイプ用)

line.Style.StartCap = Graphics.LineCapStyles.Ellipse;
line.Style.EndCap   = Graphics.LineCapStyles.Arrow;

利用可能なLineCapStylesの値:

説明
Noneキャップなし(デフォルト)
Arrow矢印
Ellipse楕円キャップ
Round丸キャップ

回転

RotateAngle(度)を使用して、シェイプを中心点を軸に回転します。

rect.RotateAngle = 45f;

スタイルの完全な例

var rect = new RectangleShape()
{
    Location = new Graphics.Point(120, 90),
    Size = new Graphics.Size(160, 100),
    Text = "Styled Shape",
};

rect.Style.FillColor  = Graphics.SolidColor.LightGoldenrodYellow;
rect.Style.LineColor  = Graphics.SolidColor.LimeGreen;
rect.Style.LineWidth  = 3f;
rect.RotateAngle = 15f;

worksheet.FloatingObjects.Add(rect);

シェイプの管理

// Remove a specific shape
worksheet.FloatingObjects.Remove(rect);

// Remove all shapes
worksheet.FloatingObjects.Clear();

// Iterate all shapes
foreach (var obj in worksheet.FloatingObjects)
{
    Console.WriteLine(obj.Bounds);
}

// Count shapes
int count = worksheet.FloatingObjects.Count;

APIリファレンス

共通プロパティ(すべてのシェイプ)

プロパティ説明
LocationGraphics.Pointワークシート上の左上の位置
SizeGraphics.Size幅と高さ
BoundsGraphics.Rectangle位置とサイズの組み合わせ
X, YRGFloat個別の座標
Width, HeightRGFloat個別の寸法
RotateAngleRGFloat回転角度(度、0 = 回転なし)
Visibleboolシェイプが表示されるかどうか
StyleIDrawingObjectStyle塗りつぶし、線、テキストのスタイルオブジェクト

ShapeObjectプロパティ(Rectangle、Ellipse、Diamondなど)

プロパティ説明
Textstringシェイプ内に表示されるテキスト
Style.TextColorSolidColorテキストの色
Style.HorizontalAlignmentHorizontalAlignmentテキストの水平配置
Style.VerticalAlignmentVerticalAlignmentテキストの垂直配置

RoundedRectangleShape

プロパティ説明
RoundRateRGFloat角の丸み(0.0 = 鋭角、1.0 = 完全に丸い)

PieShape

プロパティ説明
StartAngleRGFloat開始角度(度)
SweepAngleRGFloatスイープ角度(度)

BlockArcShape

プロパティ説明
StartAngleRGFloat開始角度(度)
SweepAngleRGFloatスイープ角度(度)
ArcWidthRGFloatアークの太さ

Line

プロパティ説明
StartPointGraphics.Point線の始点
EndPointGraphics.Point線の終点
Style.StartCapLineCapStyles始点のキャップスタイル
Style.EndCapLineCapStyles終点のキャップスタイル
Style.LineWidthRGFloat線の幅
Style.LineColorSolidColor線の色

IDrawingObjectStyleプロパティ(shape.Style経由)

プロパティ説明
FillColorIColor背景の塗りつぶし色
LineColorSolidColor輪郭の色
LineWidthRGFloat輪郭の幅
LineStyleLineStyles輪郭のスタイル(Solid、Dash、Dotなど)

ページの内容は役に立ちましたか?