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 |
|
HotPoint |
Point オブジェクト |
LineMetrics |
LATTICE_METRICS Structure 構造体と同じ |
LineNumber |
Int32 値 |
MaximumStrokeCount |
未使用 |
PointsPerInch |
未使用 |
Segmentation |
未使用。代わりに、AlternatesWithConstantPropertyValues メソッドの使用をお勧めします。 |
代替候補で公開される Recognizer プロパティについては、まず SupportedProperties プロパティを使用して有効なプロパティを確認します。これらのプロパティは、RecognitionAlternate に渡すことができる場合とできない場合があります。次に、GetPropertyValue を使用して、RecognitionAlternate で公開されるプロパティを確認します。
![]() |
---|
すべての 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