AnalysisStatusBase.AppliedChangesRegion-Eigenschaft
Gibt den Bereich des Dokuments zurück, der den Änderungen entspricht, die in der Kontextknotenstruktur als Folge eines Aufrufs von InkAnalyzer.Analyze oder von InkAnalyzerBase.BackgroundAnalyze vorgenommen wurden.
Namespace: System.Windows.Ink.AnalysisCore
Assembly: IACore (in IACore.dll)
Syntax
'Declaration
Public ReadOnly Property AppliedChangesRegion As AnalysisRegionBase
'Usage
Dim instance As AnalysisStatusBase
Dim value As AnalysisRegionBase
value = instance.AppliedChangesRegion
public AnalysisRegionBase AppliedChangesRegion { get; }
public:
property AnalysisRegionBase^ AppliedChangesRegion {
AnalysisRegionBase^ get ();
}
/** @property */
public AnalysisRegionBase get_AppliedChangesRegion()
public function get AppliedChangesRegion () : AnalysisRegionBase
Eigenschaftenwert
Typ: System.Windows.Ink.AnalysisCore.AnalysisRegionBase
AnalysisRegionBase des Dokuments, in dem Änderungen aktualisiert wurden.
Hinweise
AppliedChangesRegion wird in der Regel verwendet, wenn die Anwendung Informationen zum Debuggen gezeichnet hat und sie Invalidate auf den Bereich, in dem Änderungen vorkommen könnten, anwenden muss, damit die Debuginformationen gezeichnet werden.
Beispiele
Beim folgenden Beispiel handelt es sich um einen Ereignishandler für das ResultsUpdated-Ereignis. Dieses Ereignis wird aufgerufen, wenn die Analyse nach einem Aufruf von BackgroundAnalyze abgeschlossen wird. Zum Debuggen werden die DrawingAttributes im Ereignishandler in rot geändert, wenn Striche analysiert wurden. Statt das gesamte Steuerelement zu aktualisieren, wird in dem Beispiel AppliedChangesRegion verwendet, um nur die Bereiche zu aktualisieren, in denen Änderungen vorgenommen wurden. Im Beispiel wird eine InkCollector mit dem Namen theInkCollector verwendet, die Freihandelemente in ein Panel mit dem Namen panelForInk eingibt. Die Analyse wird von einer InkAnalyzerBase mit dem Namen theInkAnalyzerBase ausgeführt.
Private Sub theInkAnalyzer_Results(ByVal sender As Object, ByVal e As ResultsUpdatedBaseEventArgs) _
Handles theInkAnalyzerBase.ResultsUpdatedBase
Dim status As AnalysisStatusBase = e.Status
If status.Successful = True Then
' For debugging purposes, show all analyzed strokes as red
Dim analyzedStrokes As Strokes = Me.theInkCollector.Ink.CreateStrokes( _
Me.theInkAnalyzerBase.RootNode.GetStrokeIds())
analyzedStrokes.ModifyDrawingAttributes(New DrawingAttributes(Color.Red))
' Invalidate just the changed region
Dim panelGraphics As Graphics = Me.panelForInk.CreateGraphics()
Dim bounds() As Integer = status.AppliedChangesRegion.GetBounds()
' Increase bounds by pen width
' Increase bounds by pen width
bounds(1) -= CType(Me.theInkCollector.DefaultDrawingAttributes.Width, Integer)
bounds(2) -= CType(Me.theInkCollector.DefaultDrawingAttributes.Height, Integer)
bounds(3) += CType(Me.theInkCollector.DefaultDrawingAttributes.Width, Integer)
bounds(4) += CType(Me.theInkCollector.DefaultDrawingAttributes.Height, Integer)
Dim corner1 As Point = New Point(bounds(1), bounds(2))
Dim corner2 As Point = New Point(bounds(3), bounds(3))
theInkCollector.Renderer.InkSpaceToPixel(panelGraphics, corner1)
theInkCollector.Renderer.InkSpaceToPixel(panelGraphics, corner2)
Dim newBounds As New Rectangle(corner1.X, corner1.Y, corner2.X - corner1.X, _
corner2.Y - corner1.Y)
panelGraphics.Dispose()
panelForInk.Invalidate(newBounds)
End If
End Sub
void theInkAnalyzer_Results(object sender, ResultsUpdatedBaseEventArgs e)
{
AnalysisStatusBase status = e.Status;
if (status.Successful)
{
// For debugging purposes, show all analyzed strokes as red
Strokes analyzedStrokes =
this.theInkCollector.Ink.CreateStrokes(theInkAnalyzerBase.RootNode.GetStrokeIds());
analyzedStrokes.ModifyDrawingAttributes(new DrawingAttributes(Color.Red));
// Invalidate just the changed region
Graphics panelGraphics = this.panelForInk.CreateGraphics();
int[] bounds = status.AppliedChangesRegion.GetBounds();
// Increase bounds by pen width
bounds[0] -= (int)this.theInkCollector.DefaultDrawingAttributes.Width;
bounds[1] -= (int)this.theInkCollector.DefaultDrawingAttributes.Height;
bounds[3] += (int)this.theInkCollector.DefaultDrawingAttributes.Width;
bounds[4] += (int)this.theInkCollector.DefaultDrawingAttributes.Height;
Point corner1 = new Point(bounds[0], bounds[1]);
Point corner2 = new Point(bounds[2], bounds[3]);
theInkCollector.Renderer.InkSpaceToPixel(panelGraphics, ref corner1);
theInkCollector.Renderer.InkSpaceToPixel(panelGraphics, ref corner2);
Rectangle newBounds = new Rectangle(corner1.X, corner1.Y, corner2.X - corner1.X,
corner2.Y - corner1.Y);
panelGraphics.Dispose();
panelForInk.Invalidate(newBounds);
}
}
Plattformen
Windows Vista, Windows XP SP2, Windows Server 2003
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Versionsinformationen
.NET Framework
Unterstützt in: 3.0