Export (0) Print
Expand All

AnalysisStatus Class

Represents the status of the analysis operation by indicating the success of the analysis, occurrences of warnings, and where or if any changes occurred.

Namespace: System.Windows.Ink
Assembly: IAWinFX (in iawinfx.dll)
XML Namespace:  http://schemas.microsoft.com/winfx/2006/xaml/presentation

public class AnalysisStatus
public class AnalysisStatus
public class AnalysisStatus
Not applicable.

This example shows how to look for warnings after an ink analysis. When you perform the analysis with the Afrikaans recognizer, which you probably have not installed, the analysis fails with an AnalysisWarningCode value of NoMatchingInkRecognizerFound. In this example, the debugging information is simply sent to the Output window using System.Diagnostics.Debug.WriteLine.

// Analyze using Afrikaans recognizer.
// You are unlikely to have this recognizer, so it will raise a warning.
InkAnalyzer afrikaansInkAnalyzer = new InkAnalyzer();
int afrikaansLanguageId = 1078;
afrikaansInkAnalyzer.AddStrokes(theInkCanvas.Strokes, afrikaansLanguageId);
AnalysisStatus status = afrikaansInkAnalyzer.Analyze();

// Note: We should only expect to see the BackgroundException warning if
// we were performing background analysis.
// Display any warnings
if (!status.Successful)
{
    // Initialize warning message
    string message = "Analysis resulted in the following warnings:" + Environment.NewLine;

    // Loop through warnings
    foreach (AnalysisWarning warning in status.Warnings)
    {
        switch (warning.WarningCode)
        {
            case AnalysisWarningCode.Aborted:
                message += "Analysis operation was aborted. ";
                break;
            case AnalysisWarningCode.BackgroundException:
                // This is a fatal warning. Throw an exception.
                // First, attempt to save as much doc state as possible 
                // ...

                // Rethrow the exception so that it can be caught by an exception
                // handler (or if there is no exception handler, a program error 
                // debugger such as Dr. Watson can be invoked)
                throw (warning.BackgroundException);
            case AnalysisWarningCode.ConfirmedWithoutInkRecognition:
                message += "Node was confirmed without ink recognition having been performed. ";
                break;
            case AnalysisWarningCode.ContextNodeLocationNotSet:
                message += "Node does not have a proper location set. ";
                break;
            case AnalysisWarningCode.FactoidCoercionNotSupported:
                message += "Factoid coercion failed ";
                if (warning.AnalysisHint != null && warning.AnalysisHint.Factoid != null)
                {
                    message += "for factoid: " + warning.AnalysisHint.Factoid + ". ";
                }
                break;
            case AnalysisWarningCode.FactoidNotSupported:
                if (warning.AnalysisHint != null && warning.AnalysisHint.Factoid != null)
                {
                    message += warning.AnalysisHint.Factoid + " factoid was not respected. ";
                }
                break;
            case AnalysisWarningCode.GuideNotSupported:
                message += "Guide was not respected. ";
                break;
            case AnalysisWarningCode.AddInkToRecognizerFailed:
                message += "Ink could not be added to the InkRecognizer. ";
                break;
            case AnalysisWarningCode.InkRecognizerInitializationFailed:
                message += "The InkRecognizer failed to initialize. ";
                break;
            case AnalysisWarningCode.NoMatchingInkRecognizerFound:
                message += "There are no ink recognizers meeting the language or capabilities needed. ";
                break;
            case AnalysisWarningCode.LanguageIdNotRespected:
                message += "The language ID set on a stroke did not match the language ID of the InkRecognizer. ";
                break;
            case AnalysisWarningCode.PartialDictionaryTermsNotSupported:
                message += "Partial dictionary terms could not be returned from the text recognizer. ";
                break;
            case AnalysisWarningCode.TextRecognitionProcessFailed:
                message += "The text recognition process failed. ";
                break;
            case AnalysisWarningCode.SetPrefixSuffixFailed:
                message += "The text recognizer was unable to respect either the prefix or suffix. ";
                if (warning.AnalysisHint != null && warning.AnalysisHint.PrefixText != null)
                {
                    message += "Prefix: " + warning.AnalysisHint.PrefixText + ". ";
                }
                if (warning.AnalysisHint != null && warning.AnalysisHint.SuffixText != null)
                {
                    message += "Suffix: " + warning.AnalysisHint.SuffixText + ". ";
                }
                break;
            case AnalysisWarningCode.WordlistNotSupported:
                message += "Wordlist was not respected. ";
                break;
            case AnalysisWarningCode.WordModeNotSupported:
                message += "Word mode was not respected. ";
                break;
        }

        // Add node id information
        foreach (Guid id in warning.GetNodeIds())
            message += "Id: " + id.ToString() + " ";

        // Add hint information
        if (warning.AnalysisHint != null)
        {
            AnalysisHintNode hint = warning.AnalysisHint;
            message += Environment.NewLine + "Hint information: ";
            message += "AllowPartialDictionaryTerms";
            if (hint.AllowPartialDictionaryTerms)
                message += " = true ";
            else
                message += " = false ";
            message += "CoerceToFactoid";
            if (hint.CoerceToFactoid)
                message += " = true ";
            else
                message += " = false ";
            if (hint.Factoid != null)
                message += "Factoid = " + warning.AnalysisHint.Factoid + " ";
            message += "Guide Drawn Box = (" +
                hint.Guide.DrawnBoxTop.ToString() + ", " +
                hint.Guide.DrawnBoxLeft.ToString() + ", " +
                hint.Guide.DrawnBoxBottom.ToString() + ", " +
                hint.Guide.DrawnBoxRight.ToString() + ", " + ")";
            message += "Guide Writing Box = (" +
                hint.Guide.WritingBoxTop.ToString() + ", " +
                hint.Guide.WritingBoxLeft.ToString() + ", " +
                hint.Guide.WritingBoxBottom.ToString() + ", " +
                hint.Guide.WritingBoxRight.ToString() + ", " + ")";
            if (hint.Name != null)
                message += "Name = " + warning.AnalysisHint.Name + " ";
            if (hint.PrefixText != null)
                message += "PrefixText = " + warning.AnalysisHint.PrefixText + " ";
            if (hint.SuffixText != null)
                message += "SuffixText = " + warning.AnalysisHint.SuffixText + " ";
            message += "WordMode";
            if (hint.WordMode)
                message += " = true";
            else
                message += " = false";
        }
        message += Environment.NewLine;
    }

    // Show in the output window
    System.Diagnostics.Debug.WriteLine(message);
}

if (status.Successful)
{
    MessageBox.Show(afrikaansInkAnalyzer.GetRecognizedString());
}

System.Object
  System.Windows.Ink.AnalysisStatus

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0

Community Additions

ADD
Show:
© 2015 Microsoft