次の方法で共有


Stroke.GetGeometry メソッド

定義

現在のStrokeGeometryを取得します。

オーバーロード

名前 説明
GetGeometry()

現在のStrokeGeometryを取得します。

GetGeometry(DrawingAttributes)

指定したDrawingAttributesを使用して、現在のStrokeGeometryを取得します。

GetGeometry()

現在のStrokeGeometryを取得します。

public:
 System::Windows::Media::Geometry ^ GetGeometry();
public System.Windows.Media.Geometry GetGeometry();
member this.GetGeometry : unit -> System.Windows.Media.Geometry
Public Function GetGeometry () As Geometry

戻り値

Strokeを表すGeometry

注釈

GetGeometryメソッドを使用して、Strokeの形状をカスタマイズするPathGeometryを取得します。 GetGeometryを複数回呼び出さないようにGeometryをキャッシュすることを検討してください。これはパフォーマンスに影響を与える可能性があります。

適用対象

GetGeometry(DrawingAttributes)

指定したDrawingAttributesを使用して、現在のStrokeGeometryを取得します。

public:
 System::Windows::Media::Geometry ^ GetGeometry(System::Windows::Ink::DrawingAttributes ^ drawingAttributes);
public System.Windows.Media.Geometry GetGeometry(System.Windows.Ink.DrawingAttributes drawingAttributes);
member this.GetGeometry : System.Windows.Ink.DrawingAttributes -> System.Windows.Media.Geometry
Public Function GetGeometry (drawingAttributes As DrawingAttributes) As Geometry

パラメーター

drawingAttributes
DrawingAttributes

StrokeGeometryを決定するDrawingAttributes

戻り値

Strokeを表すGeometry

次の例では、Strokeの各StylusPointに円を描画する方法を示します。 FitToCurve プロパティが true に設定されている場合、GetBezierStylusPointsを使用してスタイラス ポイントが取得されます。 それ以外の場合は、 StylusPoints プロパティが使用されます。

protected override void DrawCore(DrawingContext context, DrawingAttributes overrides)
{
    // Draw the stroke. Calling base.DrawCore accomplishes the same thing.
    Geometry geometry = GetGeometry(overrides);
    context.DrawGeometry(new SolidColorBrush(overrides.Color), null, geometry);

    StylusPointCollection points;

    // Get the stylus points used to draw the stroke.  The points used depends on
    // the value of FitToCurve.
    if (this.DrawingAttributes.FitToCurve)
    {
        points = this.GetBezierStylusPoints();
    }
    else
    {
        points = this.StylusPoints;
    }

    // Draw a circle at each stylus point.
    foreach (StylusPoint p in points)
    {
        context.DrawEllipse(null, new Pen(Brushes.Black, 1), (Point)p, 5, 5);
    }
}
Protected Overrides Sub DrawCore(ByVal context As DrawingContext, _
        ByVal overridedAttributes As DrawingAttributes)

    ' Draw the stroke. Calling base.DrawCore accomplishes the same thing.
    Dim geometry As Geometry = GetGeometry(overridedAttributes)
    context.DrawGeometry(New SolidColorBrush(overridedAttributes.Color), Nothing, geometry)

    Dim points As StylusPointCollection

    ' Get the stylus points used to draw the stroke.  The points used depends on
    ' the value of FitToCurve.
    If Me.DrawingAttributes.FitToCurve Then
        points = Me.GetBezierStylusPoints()
    Else
        points = Me.StylusPoints
    End If

    ' Draw a circle at each stylus point.
    Dim p As StylusPoint
    For Each p In points
        context.DrawEllipse(Nothing, New Pen(Brushes.Black, 1), CType(p, Point), 5, 5)
    Next p

End Sub

注釈

GetGeometryメソッドは、drawingAttributesWidthHeightFitToCurveStylusTip、およびStylusTipTransformプロパティを使用して、Geometryを決定します。 GetGeometryを複数回呼び出さないようにGeometryをキャッシュすることを検討してください。これはパフォーマンスに影響を与える可能性があります。

適用対象