概要
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);
線
LineはStartPointとEndPointで位置を指定します。どちらの端にも矢印キャップを追加できます。
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リファレンス
共通プロパティ(すべてのシェイプ)
| プロパティ | 型 | 説明 |
|---|---|---|
Location | Graphics.Point | ワークシート上の左上の位置 |
Size | Graphics.Size | 幅と高さ |
Bounds | Graphics.Rectangle | 位置とサイズの組み合わせ |
X, Y | RGFloat | 個別の座標 |
Width, Height | RGFloat | 個別の寸法 |
RotateAngle | RGFloat | 回転角度(度、0 = 回転なし) |
Visible | bool | シェイプが表示されるかどうか |
Style | IDrawingObjectStyle | 塗りつぶし、線、テキストのスタイルオブジェクト |
ShapeObjectプロパティ(Rectangle、Ellipse、Diamondなど)
| プロパティ | 型 | 説明 |
|---|---|---|
Text | string | シェイプ内に表示されるテキスト |
Style.TextColor | SolidColor | テキストの色 |
Style.HorizontalAlignment | HorizontalAlignment | テキストの水平配置 |
Style.VerticalAlignment | VerticalAlignment | テキストの垂直配置 |
RoundedRectangleShape
| プロパティ | 型 | 説明 |
|---|---|---|
RoundRate | RGFloat | 角の丸み(0.0 = 鋭角、1.0 = 完全に丸い) |
PieShape
| プロパティ | 型 | 説明 |
|---|---|---|
StartAngle | RGFloat | 開始角度(度) |
SweepAngle | RGFloat | スイープ角度(度) |
BlockArcShape
| プロパティ | 型 | 説明 |
|---|---|---|
StartAngle | RGFloat | 開始角度(度) |
SweepAngle | RGFloat | スイープ角度(度) |
ArcWidth | RGFloat | アークの太さ |
Line
| プロパティ | 型 | 説明 |
|---|---|---|
StartPoint | Graphics.Point | 線の始点 |
EndPoint | Graphics.Point | 線の終点 |
Style.StartCap | LineCapStyles | 始点のキャップスタイル |
Style.EndCap | LineCapStyles | 終点のキャップスタイル |
Style.LineWidth | RGFloat | 線の幅 |
Style.LineColor | SolidColor | 線の色 |
IDrawingObjectStyleプロパティ(shape.Style経由)
| プロパティ | 型 | 説明 |
|---|---|---|
FillColor | IColor | 背景の塗りつぶし色 |
LineColor | SolidColor | 輪郭の色 |
LineWidth | RGFloat | 輪郭の幅 |
LineStyle | LineStyles | 輪郭のスタイル(Solid、Dash、Dotなど) |