フローティングオブジェクト

フローティングオブジェクトはセルグリッドから独立して存在し、ワークシート上の絶対位置に自由に配置できます。描画シェイプ、画像、チャートが含まれます。

名前空間

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

クラス階層

FloatingObject
  └─ DrawingObject
      ├─ ShapeObject
      │   ├─ RectangleShape
      │   ├─ EllipseShape
      │   ├─ RoundedRectangleShape
      │   ├─ DiamondShape
      │   ├─ PieShape
      │   └─ BlockArcShape
      ├─ Line
      ├─ ImageObject
      └─ DrawingComponent
          └─ Chart (ColumnChart, BarChart, LineChart, etc.)

フローティングオブジェクトの追加

すべてのフローティングオブジェクトは、ワークシートのFloatingObjectsコレクションを通じて管理されます。

var sheet = grid.CurrentWorksheet;

// Create a shape
var rect = new RectangleShape
{
    Location = new Graphics.Point(50, 50),
    Size = new Graphics.Size(200, 100),
    Text = "Hello ReoGrid",
};

// Add to worksheet
sheet.FloatingObjects.Add(rect);

結果: 262

FloatingObjectsコレクション

メソッド説明
Add(object)フローティングオブジェクトをワークシートに追加します
AddRange(objects)複数のフローティングオブジェクトを一度に追加します
Remove(object)特定のフローティングオブジェクトを削除します
Clear()すべてのフローティングオブジェクトを削除します
Contains(object)オブジェクトがコレクションに含まれているか確認します
Countフローティングオブジェクトの数(読み取り専用)
this[int index]インデックスでアクセスします
// Remove a specific shape
sheet.FloatingObjects.Remove(rect);

// Remove all floating objects
sheet.FloatingObjects.Clear();

// Iterate all floating objects
foreach (var obj in sheet.FloatingObjects)
{
    Console.WriteLine($"{obj.GetType().Name}: {obj.Bounds}");
}

// Count floating objects
int count = sheet.FloatingObjects.Count;

共通プロパティ(すべてのフローティングオブジェクト)

すべてのフローティングオブジェクトは以下の位置とサイズのプロパティを共有しています。

プロパティ説明
LocationGraphics.Pointワークシート上の左上の位置
SizeGraphics.Size幅と高さ
BoundsGraphics.Rectangle位置とサイズの組み合わせ
XRGFloatX座標
YRGFloatY座標
WidthRGFloat
HeightRGFloat高さ
LeftRGFloat左端(読み取り専用)
RightRGFloat右端(読み取り専用)
TopRGFloat上端(読み取り専用)
BottomRGFloat下端(読み取り専用)
// Position
rect.Location = new Graphics.Point(100, 200);

// Size
rect.Size = new Graphics.Size(300, 150);

// Both at once
rect.Bounds = new Graphics.Rectangle(100, 200, 300, 150);

// Individual properties
rect.X = 100;
rect.Width = 300;

DrawingObjectプロパティ

描画オブジェクトには視覚的なスタイリングと変換のプロパティが追加されます。

プロパティ説明
Visibleboolオブジェクトが表示されるかどうか
RotateAngleRGFloat回転角度(度)
ScaleXRGFloat水平スケール係数
ScaleYRGFloat垂直スケール係数
StyleIDrawingObjectStyle塗りつぶし、線、テキストのスタイル
ClientBoundsRectangleオブジェクト内の境界(読み取り専用)
rect.RotateAngle = 45f;
rect.Visible = false;

スタイリング

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

IDrawingObjectStyleプロパティ

プロパティ説明
FillColorIColor背景の塗りつぶし色
LineColorSolidColor輪郭の色
LineWidthRGFloat輪郭の幅
LineStyleLineStyles輪郭のスタイル
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二点鎖線

シェイプのテキストスタイリング

シェイプ(Rectangle、Ellipse、Diamondなど)はIDrawingShapeObjectStyleを介してテキストをサポートしています。

プロパティ説明
TextColorSolidColorテキストの色
HorizontalAlignmentHorizontalAlignmentテキストの水平配置
VerticalAlignmentVerticalAlignmentテキストの垂直配置
rect.Text = "Styled Shape";
rect.Style.TextColor = Graphics.SolidColor.DarkBlue;
rect.Style.HorizontalAlignment = Drawing.HorizontalAlignment.Center;
rect.Style.VerticalAlignment = Drawing.VerticalAlignment.Middle;

線のキャップスタイリング

線オブジェクトはIDrawingLineObjectStyleを介してキャップスタイルをサポートしています。

プロパティ説明
StartCapLineCapStyles始点のキャップ
EndCapLineCapStyles終点のキャップ

LineCapStyles列挙型

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

イベント

FloatingObjectイベント

イベント説明
MouseDownオブジェクト上でマウスボタンが押されたとき

選択イベント

イベント説明
SelectionChangedオブジェクトの選択状態が変更されたとき
rect.SelectionChanged += (s, e) =>
{
    Console.WriteLine($"Selected: {rect.IsSelected}");
};

オブジェクトタイプ

描画シェイプ

塗りつぶし、輪郭、テキストをサポートするシェイプです。すべてのシェイプタイプとそのプロパティについては、描画シェイプを参照してください。

フローティング画像

ワークシート上に画像を表示します。フローティング画像を参照してください。

261

var image = Image.FromFile("photo.png");
var imgObj = new ImageObject(image)
{
    Location = new Graphics.Point(40, 30),
};
sheet.FloatingObjects.Add(imgObj);

チャート

チャートもフローティングオブジェクトです。すべてのチャートタイプについては、チャートを参照してください。

インターフェース階層

インターフェース継承元説明
IFloatingObject基本: 位置、サイズ、境界
IDrawingObjectIFloatingObject追加: スタイル、回転、スケール、コンテナ
IDrawingContainerIDrawingObject追加: 子コレクション、クリップ境界

関連トピック


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