AnalysisWarningCode 枚举
定义一些值,这些值表示在墨迹分析期间可能出现的警告。
命名空间: System.Windows.Ink.AnalysisCore
程序集: IACore(在 IACore.dll 中)
语法
声明
Public Enumeration AnalysisWarningCode
用法
Dim instance As AnalysisWarningCode
public enum AnalysisWarningCode
public enum class AnalysisWarningCode
public enum AnalysisWarningCode
public enum AnalysisWarningCode
成员
成员名称 | 说明 | |
---|---|---|
Aborted | 指示分析操作已中止。仅当调用同步分析操作时返回。中止异步操作不会引发 ResultsUpdated 事件。 | |
NoMatchingInkRecognizerFound | 指示没有任何墨迹识别器的语言或功能可满足执行系统所安装的文本识别操作的需要。 | |
FactoidNotSupported | 指示墨迹识别器不支持指定的 Factoid()。 | |
FactoidCoercionNotSupported | 指示墨迹识别器无法将其结果强制转换为指定 Factoid。 | |
GuideNotSupported | 指示墨迹识别器不支持指定的 Guide。 | |
WordlistNotSupported | 指示墨迹识别器不支持由 SetWordlist 设置的指定单词列表。 | |
WordModeNotSupported | 指示墨迹识别器不支持指定的 WordMode。 | |
PartialDictionaryTermsNotSupported | 指示无法从 InkRecognizer 返回部分字典词条。 | |
TextRecognitionProcessFailed | 指示文本识别过程失败。 | |
AddInkToRecognizerFailed | 指示无法将墨迹添加到 InkRecognizerBase。例如,在笔势识别器上添加从鼠标收集的笔画会失败,因为笔势识别器需要从数字化仪收集的笔画。 | |
SetPrefixSuffixFailed | 指示 InkRecognizerBase 不支持指定的 PrefixText 或 SuffixText 值。 | |
InkRecognizerInitializationFailed | 指示无法实例化、克隆 InkRecognizer,或者在识别器的上下文上设置笔画失败。 | |
ConfirmedWithoutInkRecognition | 指示在没有为节点计算任何识别值的情况下已由用户确认了 ContextNode。 | |
BackgroundException | 指示由于异常而未完成后台操作。这是一个严重错误,在进一步使用 InkAnalyzer 之前,需要将其重新实例化。 | |
ContextNodeLocationNotSet | 指示 ContextNode 未设置适当的 Location。Location 属性必须具有非空值,除非将 ContextNode 标记为部分填充。 | |
LanguageIdNotRespected | 指示为 CustomRecognizer 的关联笔画所设置的语言标识符与所用的 InkRecognizer 的语言标识符不匹配。墨迹仍是通过指定的 InkRecognizer 进行识别。 | |
EnableUnicodeCharacterRangesNotSupported | 指示 InkRecognizer 不支持启用在提示中指定的 Unicode 字符范围。 | |
TopInkBreaksOnlyNotSupported | 指示 InkRecognizer 不支持 TopInkBreaksOnly,即便在提示中只有对 TopInkBreaks 的请求。 | |
AnalysisAlreadyRunning | 指示 InkAnalyzer 已经在执行后台分析。 |
备注
BackgroundException 是唯一要求必须重新实例化 InkAnalyzer 才可继续使用的一个警告。
其他警告(例如 InkRecognizerInitializationFailed 和 TextRecognitionProcessFailed)可能要求 InkAnalyzer 使用其他识别器。
示例
下面的示例遍历 AnalysisWarningCollection (warnings) 中的所有警告。该示例根据 AnalysisWarningCode 提供消息。如果出现 BackgroundException,该示例将会引发异常,因为这是严重警告。然后用红色标记生成该警告的笔画。
' Loop through warnings
Dim warning As AnalysisWarningBase
For Each warning In status.Warnings
Select Case warning.WarningCode
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.Aborted
message = message & "Analysis operation was aborted. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.BackgroundException
' This is a fatal warning. Throw an exception.
' First, attempt to save as much document 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 System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ConfirmedWithoutInkRecognition
message = message & "Node was confirmed without ink recognition having been performed. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ContextNodeLocationNotSet
message = message & "Node does not have a proper location set. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidCoercionNotSupported
message = message & "Factoid coercion failed "
If (Not warning.AnalysisHint Is Nothing) AndAlso _
warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then
message = message & "for factoid: " & _
CType(warning.AnalysisHint.GetPropertyData( _
PropertyGuidsForAnalysisHintsBase.Factoid), String) & ". "
End If
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidNotSupported
If (Not warning.AnalysisHint Is Nothing) AndAlso _
warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then
message = message & _
CType(warning.AnalysisHint.GetPropertyData( _
PropertyGuidsForAnalysisHintsBase.Factoid), String) & _
" factoid was not respected. "
End If
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.GuideNotSupported
message = message & "Guide was not respected. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.AddInkToRecognizerFailed
message = message & "Ink could not be added to the InkRecognizer. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.InkRecognizerInitializationFailed
message = message & "The InkRecognizer failed to initialize. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.NoMatchingInkRecognizerFound
message = message & "There are no ink recognizers meeting the language or capabilities needed. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.LanguageIdNotRespected
message = message & "The language ID set on a stroke did not match the language ID of the InkRecognizer. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.PartialDictionaryTermsNotSupported
message = message & "Partial dictionary terms could not be returned from the text recognizer. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.SetPrefixSuffixFailed
message = message & "The text recognizer was unable to respect either the prefix or suffix. "
If (Not warning.AnalysisHint Is Nothing) AndAlso _
warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) Then
message = message & "Prefix: " & _
warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) _
& ". "
End If
If (Not warning.AnalysisHint Is Nothing) AndAlso _
warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) Then
message = message & "Suffix: " & _
warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) _
& ". "
End If
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.WordlistNotSupported
message = message & "Wordlist was not respected. "
Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.WordModeNotSupported
message = message & "Word mode was not respected. "
End Select
' Add node id information
Dim id As Guid
For Each id In warning.GetNodeIds()
message = message & "Id: " & id.ToString() & " "
Next id
' Add hint information
If Not (warning.AnalysisHint Is Nothing) Then
Dim hint As ContextNodeBase = warning.AnalysisHint
message = message & Environment.NewLine & "Hint information: "
message = message & "AllowPartialDictionaryTerms"
If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms) Then
message = message & " = " & _
hint.GetPropertyData( _
PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms).ToString()
Else
message = message & " = False "
End If
message = message & "CoerceToFactoid"
If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.CoerceToFactoid) Then
message = message & " = " & _
hint.GetPropertyData( _
PropertyGuidsForAnalysisHintsBase.CoerceToFactoid).ToString()
Else
message = message & " = False "
End If
If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then
message = message & "Factoid = " & _
warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) & " "
End If
If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Guide) Then
Dim theInkRecognizerGuideBase As InkRecognizerGuideBase = _
CType(hint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Guide), _
InkRecognizerGuideBase)
message += "Guide Drawn Box = {" & theInkRecognizerGuideBase.DrawnBoxLeft.ToString() _
& ", " & theInkRecognizerGuideBase.DrawnBoxTop.ToString() _
& ", " & theInkRecognizerGuideBase.DrawnBoxRight.ToString() _
& ", " & theInkRecognizerGuideBase.DrawnBoxBottom.ToString() _
& ")"
message &= "Guide Writing Box = {" & theInkRecognizerGuideBase.WritingBoxLeft.ToString() _
& ", " & theInkRecognizerGuideBase.WritingBoxTop.ToString() _
& ", " & theInkRecognizerGuideBase.WritingBoxRight.ToString() _
& ", " & theInkRecognizerGuideBase.WritingBoxBottom.ToString() _
& ")"
message = message & String.Format("Guide = ({0}, {1})", _
theInkRecognizerGuideBase.Columns, theInkRecognizerGuideBase.Rows)
End If
If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Name) Then
message = message & "Name = " & _
CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Name), String) _
& " "
End If
If Not hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) Then
message = message & "PrefixText = " & _
CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText), String) _
& " "
End If
If Not hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) Then
message = message & "SuffixText = " & _
CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText), String) _
& " "
End If
message = message & "WordMode"
If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode) Then
message = message & " = " & _
CType(hint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode), String)
Else
message = message & " = False"
End If
End If
message = message & Environment.NewLine
Next warning
// Loop through warnings
foreach (AnalysisWarningBase warning in status.Warnings)
{
switch (warning.WarningCode)
{
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.Aborted:
message += "Analysis operation was aborted. ";
break;
case System.Windows.Ink.AnalysisCore.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 System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ConfirmedWithoutInkRecognition:
message += "Node was confirmed without ink recognition having been performed. ";
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ContextNodeLocationNotSet:
message += "Node does not have a proper location set. ";
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidCoercionNotSupported:
message += "Factoid coercion failed ";
if (warning.AnalysisHint != null &&
warning.AnalysisHint.ContainsPropertyData(
PropertyGuidsForAnalysisHintsBase.Factoid))
{
message += "for factoid: " +
(string) warning.AnalysisHint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.Factoid) + ". ";
}
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidNotSupported:
if (warning.AnalysisHint != null &&
warning.AnalysisHint.ContainsPropertyData(
PropertyGuidsForAnalysisHintsBase.Factoid))
{
message +=
(string)warning.AnalysisHint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.Factoid)
+ " factoid was not respected. ";
}
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.GuideNotSupported:
message += "Guide was not respected. ";
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.AddInkToRecognizerFailed:
message += "Ink could not be added to the InkRecognizer. ";
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.InkRecognizerInitializationFailed:
message += "The InkRecognizer failed to initialize. ";
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.NoMatchingInkRecognizerFound:
message += "There are no ink recognizers meeting the language or capabilities needed. ";
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.LanguageIdNotRespected:
message += "The language ID set on a stroke did not match the language ID of the InkRecognizer. ";
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.PartialDictionaryTermsNotSupported:
message += "Partial dictionary terms could not be returned from the text recognizer. ";
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.SetPrefixSuffixFailed:
message += "The text recognizer was unable to respect either the prefix or suffix. ";
if (warning.AnalysisHint != null &&
warning.AnalysisHint.ContainsPropertyData(
PropertyGuidsForAnalysisHintsBase.PrefixText))
{
message += "Prefix: " +
warning.AnalysisHint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.PrefixText) + ". ";
}
if (warning.AnalysisHint != null &&
warning.AnalysisHint.ContainsPropertyData(
PropertyGuidsForAnalysisHintsBase.SuffixText))
{
message += "Suffix: " +
warning.AnalysisHint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.SuffixText) + ". ";
}
break;
case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.WordlistNotSupported:
message += "Wordlist was not respected. ";
break;
case System.Windows.Ink.AnalysisCore.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)
{
ContextNodeBase hint = warning.AnalysisHint;
message += Environment.NewLine + "Hint information: ";
message += "AllowPartialDictionaryTerms";
if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms))
message += " = " +
((bool)hint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms)).ToString();
else
message += " = false ";
message += "CoerceToFactoid";
if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.CoerceToFactoid))
message += " = " +
((bool)hint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.CoerceToFactoid)).ToString();
else
message += " = false ";
if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid))
message += "Factoid = " +
(string) warning.AnalysisHint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.Factoid) + " ";
if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Guide))
{
InkRecognizerGuideBase theInkRecognizerGuideBase =
(InkRecognizerGuideBase) hint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.Guide);
message += "Guide Drawn Box = {" + theInkRecognizerGuideBase.DrawnBoxLeft.ToString()
+ ", " + theInkRecognizerGuideBase.DrawnBoxTop.ToString()
+ ", " + theInkRecognizerGuideBase.DrawnBoxRight.ToString()
+ ", " + theInkRecognizerGuideBase.DrawnBoxBottom.ToString()
+ ")";
message += "Guide Writing Box = {" + theInkRecognizerGuideBase.WritingBoxLeft.ToString()
+ ", " + theInkRecognizerGuideBase.WritingBoxTop.ToString()
+ ", " + theInkRecognizerGuideBase.WritingBoxRight.ToString()
+ ", " + theInkRecognizerGuideBase.WritingBoxBottom.ToString()
+ ")";
}
if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Name))
message += "Name = " +
(string) warning.AnalysisHint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.Name);
if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText))
message += "PrefixText = " +
(string) warning.AnalysisHint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.PrefixText) + " ";
if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText))
message += "SuffixText = " +
(string) warning.AnalysisHint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.SuffixText) + " ";
message += "WordMode";
if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode))
message += " = " +
((bool) hint.GetPropertyData(
PropertyGuidsForAnalysisHintsBase.WordMode)).ToString();
else
message += " = false";
}
message += Environment.NewLine;
}
平台
Windows Vista, Windows XP SP2, Windows Server 2003
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:3.0