Stroke.GetGeometry Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
GetGeometry() | |
GetGeometry(DrawingAttributes) |
Gets the Geometry of the current Stroke using the specified DrawingAttributes. |
GetGeometry()
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
Returns
A Geometry that represents the Stroke.
Remarks
Use the GetGeometry method to get a PathGeometry to customize the shape of the Stroke. Consider caching the Geometry to avoid calling GetGeometry multiple times, which may impact performance.
Applies to
GetGeometry(DrawingAttributes)
Gets the Geometry of the current Stroke using the specified DrawingAttributes.
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
Parameters
- drawingAttributes
- DrawingAttributes
The DrawingAttributes that determines the Geometry of the Stroke.
Returns
A Geometry that represents the Stroke.
Examples
The following example demonstrates how to draw a circle at each StylusPoint of a Stroke. If the FitToCurve property is set to true
, the GetBezierStylusPoints is used to get the stylus points. Otherwise, the StylusPoints property is used.
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
Remarks
The GetGeometry method uses the Width, Height, FitToCurve, StylusTip and StylusTipTransform properties of drawingAttributes
to determine the Geometry. Consider caching the Geometry to avoid calling GetGeometry multiple times, which may impact performance.