Freigeben über


AnalysisStatus.AppliedChangesRegion-Eigenschaft

Gibt den Bereich des Dokuments zurück, in dem der InkAnalyzer Änderungen an der ContextNode-Struktur vorgenommen hat.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)

Syntax

'Declaration
Public ReadOnly Property AppliedChangesRegion As AnalysisRegion
'Usage
Dim instance As AnalysisStatus
Dim value As AnalysisRegion

value = instance.AppliedChangesRegion
public AnalysisRegion AppliedChangesRegion { get; }
public:
property AnalysisRegion^ AppliedChangesRegion {
    AnalysisRegion^ get ();
}
/** @property */
public AnalysisRegion get_AppliedChangesRegion()
public function get AppliedChangesRegion () : AnalysisRegion

Eigenschaftenwert

Typ: Microsoft.Ink.AnalysisRegion
Die AnalysisRegion des Dokuments, in der Änderungen aktualisiert wurden.

Hinweise

AppliedChangesRegion wird verwendet, wenn die Anwendung den Bereich mit Änderungen für ungültig erklären muss. Beispielsweise könnte die Anwendung ein besonderes Tag zeichnen, das der Benutzer anklickt, um die Analyseergebnisse zu modifizieren.

Beispiele

Das folgende Beispiel ist ein ResultsUpdated-Ereignishandler, der aufgerufen wird, wenn BackgroundAnalyze die Analyse abschließt. Zum Debuggen werden die DrawingAttributes im Ereignishandler in Rot dargestellt, sobald die 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 der InkCollector namens theInkCollector verwendet, der Freihandeingaben in dem System.Windows.Forms.Panel namens panelForInk erfasst. Der InkAnalyzer namens theInkAnalyzer führt die Analyse durch.

Private Sub theInkAnalyzer_Results(ByVal sender As Object, ByVal e As ResultsUpdatedEventArgs) _
Handles theInkAnalyzer.ResultsUpdated
    Dim status As AnalysisStatus = e.Status

    If status.Successful = True Then
        ' For debugging purposes, show all analyzed strokes as red
        Me.theInkAnalyzer.RootNode.Strokes.ModifyDrawingAttributes(New DrawingAttributes(Color.Red))

        ' Invalidate just the changed region
        Dim panelGraphics As Graphics = Me.panelForInk.CreateGraphics()
        Dim bounds As Rectangle = status.AppliedChangesRegion.GetBounds()
        ' Increase bounds by pen width
        bounds.Inflate(CType(Me.theInkCollector.DefaultDrawingAttributes.Width, Integer), _
           CType(Me.theInkCollector.DefaultDrawingAttributes.Height, Integer))
        Dim corner1 As Point = bounds.Location
        Dim corner2 As Point = New Point(bounds.Right, bounds.Bottom)
        theInkCollector.Renderer.InkSpaceToPixel(panelGraphics, corner1)
        theInkCollector.Renderer.InkSpaceToPixel(panelGraphics, corner2)
        bounds = New Rectangle(corner1.X, corner1.Y, corner2.X - corner1.X, _
            corner2.Y - corner1.Y)
        panelGraphics.Dispose()
        panelForInk.Invalidate(bounds)
    End If
End Sub
void theInkAnalyzer_ResultsUpdated(object sender, ResultsUpdatedEventArgs e)
{
    AnalysisStatus status = e.Status;

    if (status.Successful)
    {
        // For debugging purposes, show all analyzed strokes as red
        this.theInkAnalyzer.RootNode.Strokes.ModifyDrawingAttributes(new DrawingAttributes(Color.Red));

        // Invalidate just the changed region
        Graphics panelGraphics = this.panelForInk.CreateGraphics();
        Rectangle bounds = status.AppliedChangesRegion.GetBounds();
        // Increase bounds by pen width
        bounds.Inflate((int)this.theInkCollector.DefaultDrawingAttributes.Width,
           (int)this.theInkCollector.DefaultDrawingAttributes.Height);
        Point corner1 = bounds.Location;
        Point corner2 = new Point(bounds.Right, bounds.Bottom);
        theInkCollector.Renderer.InkSpaceToPixel(panelGraphics, ref corner1);
        theInkCollector.Renderer.InkSpaceToPixel(panelGraphics, ref corner2);
        bounds = new Rectangle(corner1.X, corner1.Y, corner2.X - corner1.X,
            corner2.Y - corner1.Y);
        panelGraphics.Dispose();
        panelForInk.Invalidate(bounds);
    }
}

Plattformen

Windows Vista

.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

Siehe auch

Referenz

AnalysisStatus-Klasse

AnalysisStatus-Member

Microsoft.Ink-Namespace