Freigeben über


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

Siehe auch

Referenz

AnalysisStatusBase-Klasse

AnalysisStatusBase-Member

System.Windows.Ink.AnalysisCore-Namespace

InkAnalyzer.Analyze

InkAnalyzerBase.BackgroundAnalyze