다음을 통해 공유


InkAnalyzerBase.AddStrokeToCustomRecognizer 메서드

업데이트: 2007년 11월

사용자 지정 인식기 노드에 단일 스트로크에 대한 스트로크 데이터를 추가합니다.

네임스페이스:  System.Windows.Ink.AnalysisCore
어셈블리:  IACore(IACore.dll)

구문

‘선언
Public Function AddStrokeToCustomRecognizer ( _
    strokeId As Integer, _
    strokePacketData As Integer(), _
    strokePacketDescription As Guid(), _
    customRecognizer As ContextNodeBase _
) As ContextNodeBase
‘사용 방법
Dim instance As InkAnalyzerBase
Dim strokeId As Integer
Dim strokePacketData As Integer()
Dim strokePacketDescription As Guid()
Dim customRecognizer As ContextNodeBase
Dim returnValue As ContextNodeBase

returnValue = instance.AddStrokeToCustomRecognizer(strokeId, _
    strokePacketData, strokePacketDescription, _
    customRecognizer)
public ContextNodeBase AddStrokeToCustomRecognizer(
    int strokeId,
    int[] strokePacketData,
    Guid[] strokePacketDescription,
    ContextNodeBase customRecognizer
)
public:
ContextNodeBase^ AddStrokeToCustomRecognizer(
    int strokeId, 
    array<int>^ strokePacketData, 
    array<Guid>^ strokePacketDescription, 
    ContextNodeBase^ customRecognizer
)
public ContextNodeBase AddStrokeToCustomRecognizer(
    int strokeId,
    int[] strokePacketData,
    Guid[] strokePacketDescription,
    ContextNodeBase customRecognizer
)
public function AddStrokeToCustomRecognizer(
    strokeId : int, 
    strokePacketData : int[], 
    strokePacketDescription : Guid[], 
    customRecognizer : ContextNodeBase
) : ContextNodeBase

매개 변수

  • strokeId
    형식: System.Int32
    스트로크 식별자입니다.
  • strokePacketData
    형식: array<System.Int32[]
    스트로크에 대한 패킷 데이터가 들어 있는 배열입니다.
  • strokePacketDescription
    형식: array<System.Guid[]
    패킷 속성 식별자가 들어 있는 배열입니다.

반환 값

형식: System.Windows.Ink.AnalysisCore.ContextNodeBase
잉크 분석기에서 스트로크를 추가한 컨텍스트 노드입니다.

설명

InkAnalyzerBaseType 속성 값이 UnclassifiedInk()인 ContextNodeBase에 스트로크를 추가합니다.

잉크 분석기는 분석 도중 활성 입력 스레드의 문화권 식별자를 스트로크에 할당하고 잉크 인식기 아래에서 분류되지 않은 첫 번째 잉크 노드에 스트로크를 추가합니다. 분류되지 않은 노드가 없으면 이러한 노드가 만들어집니다. 사용자 지정 인식기가 문화권 식별자를 지원하지 않는 경우에는 잉크 분석기에서 분석을 계속하고 AnalysisWarningBase 경고를 생성합니다. 이 경고의 WarningCode 속성은 LanguageIdNotRespected라는 AnalysisWarningCode 값으로 설정됩니다.

strokePacketData에는 스트로크의 모든 점에 대한 패킷 데이터가 들어 있습니다. strokePacketDescription에는 스트로크의 각 점에 대해 포함된 패킷 데이터의 형식을 설명하는 GUID(Globally Unique Identifier)가 들어 있습니다. 사용 가능한 패킷 속성의 전체 목록은 PacketProperty 클래스를 참조하십시오.

이 메서드는 DirtyRegion을 영역의 현재 값과 추가된 스트로크의 경계 상자를 합친 영역으로 확장합니다.

다음과 같은 경우 InkAnalyzerBase에서 예외가 throw됩니다.

  • 추가할 스트로크와 식별자가 같은 스트로크가 InkAnalyzerBase에 이미 포함된 경우

  • 다른 InkAnalyzerBase 개체와 연결된 ContextNodeBase가 customRecognizer 매개 변수에 포함된 경우

  • customRecognizer 매개 변수에 Type 속성 값이 CustomRecognizer()가 아닌 ContextNodeBase가 포함된 경우

예제

이 예제에서는 Stroke를 패킷 데이터로 변환하고 사용자 지정 인식기 노드에 스트로크를 추가하는 메서드를 정의합니다. 이 메서드는 잉크 분석기에서 스트로크를 추가한 ContextNodeBase를 반환합니다.

''' <summary>
''' Adds a stroke to a custom recognizer node.
''' </summary>
''' <param name="baseInkAnalyzer">The ink analyzer that contains the
''' custom recognizer node.</param>
''' <param name="theStroke">The stroke to add.</param>
''' <param name="theCustomRecognizer">The custom recognizer node
''' to which to add the stroke.</param>
''' <returns>The node to which the analyzer added the stroke.</returns>
''' <remarks>
''' This method converts stroke data to packet data for example only.
''' The InkAnalyzerBase is used when your application is handling packet
''' data. If your application uses stroke data from an Ink object, then
''' you would use InkAnalyzer.
''' </remarks>
Public Overloads Shared Function MyAddStrokeToCustomRecognizer( _
ByVal baseInkAnalyzer As System.Windows.Ink.AnalysisCore.InkAnalyzerBase, _
ByVal theStroke As Microsoft.Ink.Stroke, _
ByVal theCustomRecognizer As System.Windows.Ink.AnalysisCore.ContextNodeBase) _
As System.Windows.Ink.AnalysisCore.ContextNodeBase
    If baseInkAnalyzer Is Nothing Then
        Throw New ArgumentNullException("baseInkAnalyzer")
    End If

    If theStroke Is Nothing Then
        Throw New ArgumentNullException("theStroke")
    End If

    If theCustomRecognizer Is Nothing Then
        Throw New ArgumentNullException("theCustomRecognizer")
    End If

    If System.Windows.Ink.AnalysisCore.ContextNodeTypeBase.CustomRecognizer <> _
        theCustomRecognizer.Type Then

        Throw New ArgumentException( _
            "The context node is not a custom recognizer node.", _
            "theCustomRecognizer")
    End If

    If baseInkAnalyzer.FindNode(theCustomRecognizer.Id) Is Nothing Then
        Throw New ArgumentException( _
            "The custom recognizer node is not attached to the ink analyzer.")
    End If

    Dim result As System.Windows.Ink.AnalysisCore.ContextNodeBase = _
        baseInkAnalyzer.AddStrokeToCustomRecognizer(theStroke.Id, _
            theStroke.GetPacketData(), theStroke.PacketDescription, _
            theCustomRecognizer)

    Return result
End Function 'AddStrokeToCustomRecognizer
/// <summary>
/// Adds a stroke to a custom recognizer node.
/// </summary>
/// <param name="baseInkAnalyzer">The ink analyzer that contains the
/// custom recognizer node.</param>
/// <param name="theStroke">The stroke to add.</param>
/// <param name="theCustomRecognizerNode">The custom recognizer node
/// to which to add the stroke.</param>
/// <returns>The node to which the analyzer added the stroke.</returns>
/// <remarks>
/// This method converts stroke data to packet data for example only.
/// The InkAnalyzerBase is used when your application is handling packet
/// data. If your application uses stroke data from an Ink object, then
/// you would use InkAnalyzer.
/// </remarks>
public static System.Windows.Ink.AnalysisCore.ContextNodeBase MyAddStrokeToCustomRecognizer(
    System.Windows.Ink.AnalysisCore.InkAnalyzerBase baseInkAnalyzer,
    Microsoft.Ink.Stroke theStroke,
    System.Windows.Ink.AnalysisCore.ContextNodeBase theCustomRecognizer)
{
    if (null == baseInkAnalyzer)
    {
        throw new ArgumentNullException("baseInkAnalyzer");
    }

    if (null == theStroke)
    {
        throw new ArgumentNullException("theStroke");
    }

    if (null == theCustomRecognizer)
    {
        throw new ArgumentNullException("theCustomRecognizer");
    }

    if (System.Windows.Ink.AnalysisCore.ContextNodeTypeBase.CustomRecognizer
        != theCustomRecognizer.Type)
    {
        throw new ArgumentException(
            "The context node is not a custom recognizer node.",
            "theCustomRecognizer");
    }

    if (null == baseInkAnalyzer.FindNode(theCustomRecognizer.Id))
    {
        throw new ArgumentException(
            "The custom recognizer node is not attached to the ink analyzer.");
    }

    System.Windows.Ink.AnalysisCore.ContextNodeBase result =
        baseInkAnalyzer.AddStrokeToCustomRecognizer(
            theStroke.Id, theStroke.GetPacketData(),
            theStroke.PacketDescription, theCustomRecognizer);

    return result;
}

플랫폼

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 네임스페이스