次の方法で共有


Stroke.GetBoundingBox メソッド

Stroke オブジェクトの境界ボックスを定義する、外接する Rectangle を返します。

名前空間 :  Microsoft.Ink
アセンブリ :  Microsoft.Ink (Microsoft.Ink.dll 内)

構文

'宣言
Public Function GetBoundingBox As Rectangle
'使用
Dim instance As Stroke
Dim returnValue As Rectangle

returnValue = instance.GetBoundingBox()
public Rectangle GetBoundingBox()
public:
Rectangle GetBoundingBox()
public Rectangle GetBoundingBox()
public function GetBoundingBox() : Rectangle

戻り値

型 : System.Drawing.Rectangle

解説

境界 Rectangle はインク空間座標で表されます。

外接する Rectangle は、Stroke オブジェクトを表示するときに無効化または再描画する表示部分に対応しています。

境界ボックスがペンの幅の影響を受ける場合は、Renderer オブジェクトのビュー変更に合わせてペンの幅が適切にスケーリングされます。つまり、ペンの幅はビュー変更の行列式の平方根で乗算されてスケーリングされます。

ms570063.alert_note(ja-jp,VS.90).gifメモ :

ペンの幅を明示的に設定していない場合は、既定値の 53 になります。正しい境界ボックスを生成するためには、ペンの幅を行列式の平方根で乗算する必要があります。境界ボックスの高さと幅はそれぞれ、この計算結果値の 1/2 だけ拡大されます。たとえば、ペンの幅が 53 で行列式の平方根が 50、境界ボックスが (0, 0, 1000, 1000) であるとします。ペンの幅は (53 * 50) / 2 の計算結果に従って、境界ボックスの各方向に対して調整され、右側と下側は 1 ずつ増えます。この結果、(-1325, -1325, 2326, 2326) の境界ボックスが描画されます。

ms570063.alert_note(ja-jp,VS.90).gifメモ :

このメソッドが返す、外接する Rectangle は、Stroke オブジェクトの境界ボックスのコピーです。このメソッドが返す Rectangle を変更しても、元の Stroke オブジェクトの境界ボックスには影響しません。

この例では、InkOverlay で選択された各 Stroke オブジェクトが変更されます。まず、選択された Stroke に外接する四角形を決定するために GetBoundingBox メソッドが呼び出されます。結果として得られた四角形は、次に元の幅の半分になるように変更されます。次に、Clip メソッドが呼び出され、Stroke の右半分がクリップされます。

For Each S As Stroke In mInkOverlay.Selection
    Dim sBounds As Rectangle = S.GetBoundingBox()
    ' decrease width by half
    sBounds.Width -= sBounds.Width / 2
    ' clip the stroke
    S.Clip(sBounds)
Next
foreach (Stroke S in mInkOverlay.Selection)
{
    Rectangle sBounds = S.GetBoundingBox();
    // decrease width by half
    sBounds.Width -= sBounds.Width / 2;
    // clip the stroke
    S.Clip(sBounds);
}

プラットフォーム

Windows Vista

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 3.0

参照

参照

Stroke クラス

Stroke メンバ

GetBoundingBox オーバーロード

Microsoft.Ink 名前空間

Strokes

BoundingBoxMode

Strokes.GetBoundingBox