Stroke.GetGeometry 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 名称 | 说明 |
|---|---|
| GetGeometry() | |
| GetGeometry(DrawingAttributes) |
Geometry使用指定的DrawingAttributes值获取当前Stroke值。 |
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
返回
注解
使用该方法 GetGeometry 获取自定义 PathGeometry 形状 Stroke的方法。 请考虑缓存 Geometry 以避免多次调用 GetGeometry ,这可能会影响性能。
适用于
GetGeometry(DrawingAttributes)
Geometry使用指定的DrawingAttributes值获取当前Stroke值。
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
返回
示例
下面的示例演示如何在每 StylusPoint 一个位置绘制一个 Stroke圆。
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使用Width用于确定其Geometry属性的 、FitToCurveHeight属性StylusTip和StylusTipTransform属性drawingAttributes。 请考虑缓存 Geometry 以避免多次调用 GetGeometry ,这可能会影响性能。