Strokes.Transform メソッド (Matrix, Boolean)
線形変換を Strokes コレクションに適用します。また、変換をペンの幅に適用するかどうかを指定できます。
名前空間 : Microsoft.Ink
アセンブリ : Microsoft.Ink (Microsoft.Ink.dll 内)
構文
'宣言
Public Sub Transform ( _
inkTransform As Matrix, _
applyOnPenWidth As Boolean _
)
'使用
Dim instance As Strokes
Dim inkTransform As Matrix
Dim applyOnPenWidth As Boolean
instance.Transform(inkTransform, applyOnPenWidth)
public void Transform(
Matrix inkTransform,
bool applyOnPenWidth
)
public:
void Transform(
Matrix^ inkTransform,
bool applyOnPenWidth
)
public void Transform(
Matrix inkTransform,
boolean applyOnPenWidth
)
public function Transform(
inkTransform : Matrix,
applyOnPenWidth : boolean
)
パラメータ
- inkTransform
型 : System.Drawing.Drawing2D.Matrix
Strokes コレクションで使用する System.Drawing.Drawing2D.Matrix 変換。
- applyOnPenWidth
型 : System.Boolean
Strokes コレクション内の Stroke オブジェクトの DrawingAttributes のインクの幅に変換を適用するかどうかを示すブール値。値
説明
true
変換が、ポイントとペンの幅の両方に適用されます。
false
変換がポイントにのみ適用されます。
解説
線形変換は、スケーリング、回転、変換、および変換の組み合わせを表現できます。
ペンの幅が変換に合わせて適切にスケーリングされる場合、描画されるペンの幅は、指定したペンの幅 (指定がない場合は既定値の 53) を変換の行列式の平方根で乗算することにより計算されます。
例
この例では、InkOverlay オブジェクトにアタッチされた Strokes コレクションが、ファクタ 2 でスケーリングされます。スケーリングは、Strokes コレクションの境界ボックスの中心を基準に行われます。インクの幅も、ファクタ 2 でスケーリングされます。
' Access to the Strokes property returns a copy of the Strokes object.
' This copy must be implicitly (via using statement) or explicitly
' disposed of in order to avoid a memory leak.
Using allStrokes As Strokes = mInkOverlay.Ink.Strokes
Dim inkTransform As Matrix = New Matrix()
Dim bounds As Rectangle = allStrokes.GetBoundingBox()
Dim center As PointF = _
New PointF(0.5F * (bounds.Left + bounds.Right), _
0.5F * (bounds.Top + bounds.Bottom))
' Translate to center of bounding box
inkTransform.Translate(center.X, center.Y)
' Scale by factor of 2
inkTransform.Scale(2.0F, 2.0F)
' Translate back
inkTransform.Translate(-center.X, -center.Y)
' Transform strokes
allStrokes.Transform(inkTransform, True)
End Using
// Access to the Strokes property returns a copy of the Strokes object.
// This copy must be implicitly (via using statement) or explicitly
// disposed of in order to avoid a memory leak.
using (Strokes allStrokes = mInkOverlay.Ink.Strokes)
{
Matrix inkTransform = new Matrix();
Rectangle bounds = allStrokes.GetBoundingBox();
PointF center = new PointF(0.5f * (bounds.Left + bounds.Right),
0.5f * (bounds.Top + bounds.Bottom));
// Translate to center of bounding box
inkTransform.Translate(center.X, center.Y);
// Scale by factor of 2
inkTransform.Scale(2.0F, 2.0F);
// Translate back
inkTransform.Translate(-center.X, -center.Y);
// Transform strokes
allStrokes.Transform(inkTransform, true);
}
プラットフォーム
Windows Vista
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 3.0