次の方法で共有


AnalysisStatus クラス

分析処理が正常に完了したかどうかのステータス、関連する警告、および変更があるかどうか、変更がある場合はどこが変更されたかに関する情報を表します。

名前空間 :  System.Windows.Ink
アセンブリ :  IAWinFX (IAWinFX.dll 内)

構文

'宣言
Public Class AnalysisStatus
'使用
Dim instance As AnalysisStatus
public class AnalysisStatus
public ref class AnalysisStatus
public class AnalysisStatus
public class AnalysisStatus

この例では、インク分析後に警告を見つける方法を示します。アフリカーンス語の認識エンジン (インストールされていない可能性があります) を使用して分析を実行すると、NoMatchingInkRecognizerFound という AnalysisWarningCode 値で分析は失敗します。この例では、DebugWriteLine() を使用してデバッグ情報が出力ウィンドウに送信されるだけです。

' Analyze using Afrikaans recognizer.
' You are unlikely to have this recognizer, so it will raise a warning.
Dim afrikaansInkAnalyzer As New InkAnalyzer()
Dim afrikaansLanguageId As Integer = 1078
afrikaansInkAnalyzer.AddStrokes(theInkCanvas.Strokes, afrikaansLanguageId)
Dim status As AnalysisStatus = afrikaansInkAnalyzer.Analyze()

' Note: We should only expect to see the BackgroundException warning if
' we were performing background analysis.
' Display any warnings
If Not status.Successful Then
    ' Initialize warning message
    Dim message As String = "Analysis resulted in the following warnings:" & Environment.NewLine

    ' Loop through warnings
    Dim warning As AnalysisWarning
    For Each warning In  status.Warnings
        Select Case warning.WarningCode
            Case AnalysisWarningCode.Aborted
                message &= "Analysis operation was aborted. "
            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. "
            Case AnalysisWarningCode.ContextNodeLocationNotSet
                message &= "Node does not have a proper ___location set. "
            Case AnalysisWarningCode.FactoidCoercionNotSupported
                message &= "Factoid coercion failed "
                If Not (warning.AnalysisHint Is Nothing) AndAlso _
                   Not (warning.AnalysisHint.Factoid Is Nothing) Then
                    message &= "for factoid: " & warning.AnalysisHint.Factoid & ". "
                End If
            Case AnalysisWarningCode.FactoidNotSupported
                If Not (warning.AnalysisHint Is Nothing) AndAlso _
                   Not (warning.AnalysisHint.Factoid Is Nothing) Then
                    message &= warning.AnalysisHint.Factoid & " factoid was not respected. "
                End If
            Case AnalysisWarningCode.GuideNotSupported
                message &= "Guide was not respected. "
            Case AnalysisWarningCode.AddInkToRecognizerFailed
                message &= "Ink could not be added to the InkRecognizer. "
            Case AnalysisWarningCode.InkRecognizerInitializationFailed
                message &= "The InkRecognizer failed to initialize. "
            Case AnalysisWarningCode.NoMatchingInkRecognizerFound
                message &= "There are no ink recognizers meeting the language or capabilities needed. "
            Case AnalysisWarningCode.LanguageIdNotRespected
                message &= "The language ID set on a stroke did not match the language ID of the InkRecognizer. "
            Case AnalysisWarningCode.PartialDictionaryTermsNotSupported
                message &= "Partial dictionary terms could not be returned from the text recognizer. "
            Case AnalysisWarningCode.TextRecognitionProcessFailed
                message &= "The text recognition process failed. "
            Case AnalysisWarningCode.SetPrefixSuffixFailed
                message &= "The text recognizer was unable to respect either the prefix or suffix. "
                If Not (warning.AnalysisHint Is Nothing) AndAlso _
                   Not (warning.AnalysisHint.PrefixText Is Nothing) Then
                    message &= "Prefix: " & warning.AnalysisHint.PrefixText & ". "
                End If
                If Not (warning.AnalysisHint Is Nothing) AndAlso _
                   Not (warning.AnalysisHint.SuffixText Is Nothing) Then
                    message &= "Suffix: " & warning.AnalysisHint.SuffixText & ". "
                End If
            Case AnalysisWarningCode.WordlistNotSupported
                message &= "Wordlist was not respected. "
            Case AnalysisWarningCode.WordModeNotSupported
                message &= "Word mode was not respected. "
        End Select

        ' Add node id information
        Dim id As Guid
        For Each id In  warning.GetNodeIds()
            message &= "Id: " & id.ToString() & " "
        Next id
        ' Add hint information
        If Not (warning.AnalysisHint Is Nothing) Then
            Dim hint As AnalysisHintNode = warning.AnalysisHint
            message &= Environment.NewLine & "Hint information: "
            message &= "AllowPartialDictionaryTerms"
            If hint.AllowPartialDictionaryTerms Then
                message &= " = true "
            Else
                message &= " = false "
            End If
            message &= "CoerceToFactoid"
            If hint.CoerceToFactoid Then
                message &= " = true "
            Else
                message &= " = false "
            End If
            If Not (hint.Factoid Is Nothing) Then
                message &= "Factoid = " & warning.AnalysisHint.Factoid & " "
            End If
            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 Not (hint.Name Is Nothing) Then
                message &= "Name = " & warning.AnalysisHint.Name & " "
            End If
            If Not (hint.PrefixText Is Nothing) Then
                message &= "PrefixText = " & warning.AnalysisHint.PrefixText & " "
            End If
            If Not (hint.SuffixText Is Nothing) Then
                message &= "SuffixText = " & warning.AnalysisHint.SuffixText & " "
            End If
            message &= "WordMode"
            If hint.WordMode Then
                message &= " = true"
            Else
                message &= " = false"
            End If
        End If
        message &= Environment.NewLine
    Next warning
    ' Show in the output window
    System.Diagnostics.Debug.WriteLine(message)
End If

If status.Successful Then
    MessageBox.Show(afrikaansInkAnalyzer.GetRecognizedString())
End If
// 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

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

Windows Vista

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 3.0

参照

参照

AnalysisStatus メンバ

System.Windows.Ink 名前空間

InkAnalyzer.Analyze

System.Windows.Ink.ResultsUpdatedEventArgs

System.Windows.Ink.AnalysisWarningCode