Stroke.OnInvalidated(EventArgs) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Invalidated 이벤트를 발생시킵니다.
protected:
virtual void OnInvalidated(EventArgs ^ e);
protected virtual void OnInvalidated (EventArgs e);
abstract member OnInvalidated : EventArgs -> unit
override this.OnInvalidated : EventArgs -> unit
Protected Overridable Sub OnInvalidated (e As EventArgs)
매개 변수
예제
다음 예제에서는 그립니다를 Stroke 단색 스트로크 또는 일련의 StylusPoint 에 따라 개체를 Mode
속성입니다. 예제에서는 호출을 OnInvalidated 메서드를 호출 하는 DrawCore 스트로크를 그릴 위치입니다.
// Enumerator that specifies the drawing mode of the stroke.
public enum DrawingMode
{
Solid,
StyulusPoints
}
' Enumerator that specifies the drawing mode of the stroke.
Public Enum DrawingMode
Solid
StyulusPoints
End Enum 'DrawingMode
private DrawingMode strokeMode = DrawingMode.Solid;
// Property that specifies whether to draw a solid stroke or the stylus points
public DrawingMode Mode
{
get
{
return strokeMode;
}
set
{
if (strokeMode != value)
{
strokeMode = value;
this.OnInvalidated(new EventArgs());
}
}
}
protected override void DrawCore(System.Windows.Media.DrawingContext context, DrawingAttributes overrides)
{
SolidColorBrush strokeBrush = new SolidColorBrush(overrides.Color);
// If strokeMode it set to Solid, draw the strokes regularly.
// Otherwise, draw the stylus points.
if (strokeMode == DrawingMode.Solid)
{
Geometry geometry = GetGeometry(overrides);
context.DrawGeometry(strokeBrush, null, geometry);
}
else // strokeMode == DrawingMode.StylusPoints
{
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(strokeBrush, 1), (Point)p, 5, 5);
}
}
}
Private strokeMode As DrawingMode = DrawingMode.Solid
' Property that specifies whether to draw a solid stroke or the stylus points
Public Property Mode() As DrawingMode
Get
Return strokeMode
End Get
Set(ByVal value As DrawingMode)
If strokeMode <> value Then
strokeMode = value
Me.OnInvalidated(New EventArgs())
End If
End Set
End Property
Protected Overrides Sub DrawCore(ByVal context As System.Windows.Media.DrawingContext, _
ByVal overridedAttributes As DrawingAttributes)
Dim strokeBrush As New SolidColorBrush(overridedAttributes.Color)
' If strokeMode it set to Solid, draw the strokes regularly.
' Otherwise, draw the stylus points.
If strokeMode = DrawingMode.Solid Then
Dim geometry As Geometry = GetGeometry(overridedAttributes)
context.DrawGeometry(strokeBrush, Nothing, geometry)
' strokeMode == DrawingMode.StylusPoints
Else
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(strokeBrush, 1), CType(p, Point), 5, 5)
Next p
End If
End Sub
설명
상속 하는 경우는 Stroke 클래스 및 고 스트로크의 모양을 사용자 지정 상태에 기반을 호출 해야 합니다는 OnInvalidated 발생 하는 방법의 Invalidated 이벤트. InkPresenter 핸들을 Invalidated 이벤트 및 호출을 DrawCore 메서드.
적용 대상
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET