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

用于确定 DrawingAttributesGeometryStroke

返回

表示 GeometryStroke

示例

以下示例演示如何在每个 StylusPoint 处绘制一个 Stroke圆。 如果 属性 FitToCurve 设置为 trueGetBezierStylusPoints 则使用 获取触笔点。 否则, 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使用 的 WidthHeightFitToCurveStylusTipStylusTipTransform 属性drawingAttributes来确定 Geometry。 请考虑缓存 , Geometry 以避免多次调用 GetGeometry ,这可能会影响性能。

适用于