Stroke.GetGeometry 方法

定義

取得目前 GeometryStroke

多載

GetGeometry()

取得目前 GeometryStroke

GetGeometry(DrawingAttributes)

使用指定的 Geometry 取得目前 StrokeDrawingAttributes

GetGeometry()

取得目前 GeometryStroke

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

傳回

表示 GeometryStroke

備註

GetGeometry使用 方法來取得 PathGeometry ,以自訂 的 Stroke 圖形。 請考慮快 Geometry 取 以避免呼叫 GetGeometry 多次,這可能會影響效能。

適用於

GetGeometry(DrawingAttributes)

使用指定的 Geometry 取得目前 StrokeDrawingAttributes

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

DrawingAttributes,可決定 GeometryStroke

傳回

表示 GeometryStroke

範例

下列範例示範如何在每個 StylusPointStroke 上繪製圓形。 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 會使用 WidthdrawingAttributesHeightFitToCurveStylusTipStylusTipTransform 屬性來判斷 。 Geometry 請考慮快 Geometry 取 以避免呼叫 GetGeometry 多次,這可能會影響效能。

適用於