次の方法で共有


RecognitionAlternate.GetPropertyValue メソッド

RecognitionAlternate オブジェクトの指定された RecognitionProperty の値を返します。

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

構文

'宣言
Public Function GetPropertyValue ( _
    g As Guid _
) As Byte()
'使用
Dim instance As RecognitionAlternate
Dim g As Guid
Dim returnValue As Byte()

returnValue = instance.GetPropertyValue(g)
public byte[] GetPropertyValue(
    Guid g
)
public:
array<unsigned char>^ GetPropertyValue(
    Guid g
)
public byte[] GetPropertyValue(
    Guid g
)
public function GetPropertyValue(
    g : Guid
) : byte[]

パラメータ

  • g
    型 : System.Guid
    RecognitionProperty オブジェクトのフィールドの 1 つを表すグローバル一意識別子 (GUID) として返すための代替候補のプロパティ。

戻り値

型 : array<System.Byte[]
プロパティ型の値をバイト配列の形式で返します。戻り値の解釈は、プロパティ型によって異なります。

解説

このメソッドを使用して、RecognitionAlternate オブジェクト上に対応するヘルパ プロパティを持たない、RecognitionProperty オブジェクトのプロパティ値を取得します。RecognitionAlternate オブジェクトのヘルパ プロパティには、Confidence プロパティと LineNumber プロパティが含まれています。

次の表は、バイト配列で返される値の型を示します。

RecognitionProperty 型

説明

ConfidenceLevel

RecognitionConfidence 列挙値

HotPoint

Point オブジェクト

LineMetrics

LATTICE_METRICS Structure 構造体と同じ

LineNumber

Int32

MaximumStrokeCount

未使用

PointsPerInch

未使用

Segmentation

未使用。代わりに、AlternatesWithConstantPropertyValues メソッドの使用をお勧めします。

代替候補で公開される Recognizer プロパティについては、まず SupportedProperties プロパティを使用して有効なプロパティを確認します。これらのプロパティは、RecognitionAlternate に渡すことができる場合とできない場合があります。次に、GetPropertyValue を使用して、RecognitionAlternate で公開されるプロパティを確認します。

ms569785.alert_note(ja-jp,VS.90).gifメモ :

すべての Recognizer プロパティが RecognitionAlternate オブジェクトに渡されるわけではありません。たとえば、Microsoft® ジェスチャ認識エンジンは、SupportedProperties プロパティを使用してのみ照会できる HotPoint を公開します。HotPoint プロパティは、RecognitionAlternate では公開されません。

この C# の例では、Strokes コレクションの認識で使用されるベースラインを表示します。GetPropertyValue メソッドは、最上位の代替候補から行メトリックスを取得します。次に、InkOverlay,theInkOverlay に結合された Renderer オブジェクトが、インク空間座標をピクセル座標に変換するために使用されます。最後に、ベースラインが緑で描画されます。この例では、既に SupportedProperties プロパティがチェックされて LineMetrics プロパティのサポートが確認済みです。

[C#]

using Microsoft.Ink;
using System.Drawing.Drawing2D;
using System.IO;
//...
    private void DrawBaseline(Strokes theStrokes)
    {
        // Get the top alternate for all the strokes
        RecognizerContext context = new RecognizerContext();
        context.Strokes = theStrokes;
        RecognitionStatus status = new RecognitionStatus();
        RecognitionResult result = context.Recognize(out status);
        RecognitionAlternate topAlternate = result.TopAlternate;

        // Get the line metrics from the top alternate
        byte [] byteArray = topAlternate.GetPropertyValue(RecognitionProperty.LineMetrics);
        using (MemoryStream stream = new MemoryStream(byteArray))
        using (BinaryReader reader = new BinaryReader(stream))
        {
            int startX = reader.ReadInt32();
            int startY = reader.ReadInt32();
            int endX = reader.ReadInt32();
            int endY = reader.ReadInt32();

            // Convert baseline to pixel coordinates
            Graphics tempGraphics = CreateGraphics();
            Point startPoint = new Point(startX, startY);
            Point endPoint = new Point(endX, endY);
            theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, ref startPoint);
            theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, ref endPoint);
            tempGraphics.DrawLine(new Pen(Color.Green), startPoint, endPoint);

            // Dispose of temporary graphics
            tempGraphics.Dispose();
        }
    }

この Microsoft Visual Basic® .NET の例では、Strokes コレクションの認識で使用されるベースラインを表示します。GetPropertyValue メソッドは、最上位の代替候補から行メトリックスを取得します。次に、InkOverlay,theInkOverlay に結合された Renderer オブジェクトが、インク空間座標をピクセル座標に変換するために使用されます。最後に、ベースラインが緑で描画されます。この例では、既に SupportedProperties プロパティがチェックされて LineMetrics プロパティのサポートが確認済みです。

[Visual Basic]

Imports Microsoft.Ink
Imports System.Drawing.Drawing2D
Imports System.IO
'...
    Private Sub DrawBaseline(ByVal theStrokes As Strokes)
        ' Get the top alternate for all the strokes
        Dim context As New RecognizerContext()
        context.Strokes = theStrokes
        Dim status As New RecognitionStatus()
        Dim result As RecognitionResult = context.Recognize(status)
        Dim topAlternate As RecognitionAlternate = result.TopAlternate

        ' Get the line metrics from the top alternate
        Dim byteArray() As Byte = topAlternate.GetPropertyValue(RecognitionProperty.LineMetrics)
        Dim stream As New MemoryStream(byteArray)
        Dim reader As New BinaryReader(stream)

        Dim startX As Integer = reader.ReadInt32()
        Dim startY As Integer = reader.ReadInt32()
        Dim endX As Integer = reader.ReadInt32()
        Dim endY As Integer = reader.ReadInt32()

        ' Convert baseline to pixel coordinates
        Dim tempGraphics As Graphics = CreateGraphics()
        Dim startPoint As New Point(startX, startY)
        Dim endPoint As New Point(endX, endY)
        theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, startPoint)
        theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, endPoint)
        tempGraphics.DrawLine(New Pen(Color.Green), startPoint, endPoint)

        ' Clean up
        tempGraphics.Dispose()
        reader.Close()
        stream.Close()
    End Sub

プラットフォーム

Windows Vista

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

バージョン情報

.NET Framework

サポート対象 : 3.0

参照

参照

RecognitionAlternate クラス

RecognitionAlternate メンバ

Microsoft.Ink 名前空間

RecognitionAlternate.AlternatesWithConstantPropertyValues

RecognitionProperty