InkAnalyzerBase.Load 方法

将保存的分析结果加载到墨迹分析器中。

命名空间:  System.Windows.Ink.AnalysisCore
程序集:  IACore(在 IACore.dll 中)

语法

声明
Public Function Load ( _
    serializedResults As Byte(), _
    originalToNewStrokeIdMap As Hashtable _
) As Boolean
用法
Dim instance As InkAnalyzerBase
Dim serializedResults As Byte()
Dim originalToNewStrokeIdMap As Hashtable
Dim returnValue As Boolean

returnValue = instance.Load(serializedResults, _
    originalToNewStrokeIdMap)
public bool Load(
    byte[] serializedResults,
    Hashtable originalToNewStrokeIdMap
)
public:
bool Load(
    array<unsigned char>^ serializedResults, 
    Hashtable^ originalToNewStrokeIdMap
)
public boolean Load(
    byte[] serializedResults,
    Hashtable originalToNewStrokeIdMap
)
public function Load(
    serializedResults : byte[], 
    originalToNewStrokeIdMap : Hashtable
) : boolean

参数

  • serializedResults
    类型:array<System.Byte[]
    一个包含保存的分析结果的 8 位无符号整数数组。
  • originalToNewStrokeIdMap
    类型:System.Collections.Hashtable
    旧笔画标识符到新笔画标识符的映射;如果保留原始笔画标识符,则为 nullnull 引用(在 Visual Basic 中为 Nothing)。

返回值

类型:System.Boolean
如果墨迹分析器加载了分析结果,则为 true;否则为 false。

备注

当墨迹分析器从保存的结果添加 ContextNodeBase 时,会将新的全局唯一标识符 (GUID) 分配给 ContextNodeBase 对象的 Id 属性。

此方法将保存的分析结果添加到现有的 ContextNodeBase 树。若要确保对合并的结果正确进行排序,请将包含加载的上下文节点的区域添加到墨迹分析器的 DirtyRegion 并重新分析墨迹。

SaveResults 方法不将数据包数据与分析结果一起保存。

originalToNewStrokeIdMap 中的每个键都是保存的分析结果中的笔画的笔画标识符。originalToNewStrokeIdMap 中的每个值都是新标识符,用于替换加载的分析结果中的原始标识符。

如果保存的分析提示与现有分析提示冲突,则墨迹分析器不加载保存的提示,但加载保存的结果的其余部分。但是,如果分析器加载的笔画结果位于分析器未加载的已保存分析提示的区域内,则分析器将笔画的边界框添加到 InkAnalyzerBase 对象的 DirtyRegion 属性。同样,如果分析器加载的笔画结果位于现有分析提示的区域中,则分析器也会将笔画的边界框添加到 InkAnalyzerBase 对象的 DirtyRegion 属性。有关分析提示的更多信息,请参见 PropertyGuidsForAnalysisHintsBase

InkAnalyzerBase 在加载保存的结果时引发 ContextNodeCreatedBaseContextNodeLinkAddingBaseContextNodePropertiesUpdatedBase 事件。

示例

下面的示例从 8 位无符号整数数组 savedResults 加载保存的分析结果。此示例将结果加载到 InkAnalyzerBase (theInkAnalyzerBase) 中。此示例不演示在墨迹分析器已包含笔画数据时如何计算新笔画标识符。

' Load previously saved analysis results
Dim successful As Boolean = False
If 0 = theInkAnalyzerBase.RootNode.GetStrokeIds().Length Then
    ' If the analyzer does not already contain stroke data, do not
    ' remap the identifiers for the strokes.
    successful = theInkAnalyzerBase.Load(savedResults, Nothing)
Else
    ' If the analyzer does already contain stroke data, remap the stroke
    ' identifiers for the saved stroke data. Then use that remapping
    ' to load the results.
End If
// Load previously saved analysis results
bool successful = false;
if (0 == theInkAnalyzerBase.RootNode.GetStrokeIds().Length)
{
    // If the analyzer does not already contain stroke data, do not
    // remap the identifiers for the strokes.
    successful = theInkAnalyzerBase.Load(savedResults, null);
}
else
{
    // If the analyzer does already contain stroke data, remap the stroke
    // identifiers for the saved stroke data. Then use that remapping
    // to load the results.
}

平台

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.0

另请参见

参考

InkAnalyzerBase 类

InkAnalyzerBase 成员

System.Windows.Ink.AnalysisCore 命名空间

System.Windows.Ink.AnalysisCore.ContextNodeBase

InkAnalyzerBase.DirtyRegion

InkAnalyzerBase.SaveResults