次の方法で共有


Ink.Load メソッド

新しい Ink オブジェクトに既知のバイナリ データを設定します。

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

構文

'宣言
Public Sub Load ( _
    inkdata As Byte() _
)
'使用
Dim instance As Ink
Dim inkdata As Byte()

instance.Load(inkdata)
public void Load(
    byte[] inkdata
)
public:
void Load(
    array<unsigned char>^ inkdata
)
public void Load(
    byte[] inkdata
)
public function Load(
    inkdata : byte[]
)

パラメータ

  • inkdata
    型 : array<System.Byte[]
    インク データを格納するバイト配列。

解説

インクは新しい空の Ink オブジェクト、つまり Stroke オブジェクトを収集したこともなく、プロパティがアタッチされたこともない Ink オブジェクトにのみ読み込むことができます。以前にストロークを収集した、またはプロパティがアタッチされた Ink オブジェクトにインクを読み込もうとすると、ストロークまたはプロパティが Ink オブジェクトから削除されている場合であっても例外がスローされます。これは、Id プロパティの割り当て方法が原因です。Stroke オブジェクトには一意の Id プロパティが割り当てられ、この Id プロパティは Stroke オブジェクトが Ink オブジェクトから削除された場合であっても再利用できません。つまり、Id プロパティが 1 の StrokeInk オブジェクトに含まれている場合に、Stroke を削除して別のインク データをこの Ink オブジェクトに読み込むと、新しい Stroke オブジェクトの Id プロパティは 2 から始まります。これを多数の Ink オブジェクト間で追跡するとエラーが発生する可能性があるため、追跡できません。

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

空でない Ink オブジェクトにインクを読み込もうとすると、Ink オブジェクトのすべてのデータ (CustomStrokesExtendedProperties も含む) は、Load メソッドの呼び出し時に失われます。

Save メソッドを使用すると、バイト データの配列で構成される GIF 形式でインクを保持できます。GIF 永続性形式は PersistenceFormat 列挙型で指定されます。バイト データの配列を保存した後で、それを別の Ink オブジェクトに読み込むことができます。つまり、Save メソッドを呼び出して GIF 形式でないバイト配列を受け取るかのようにして、GIF 互換のバイト配列データを別の Ink オブジェクトに読み込むことができます。

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

イメージを作成し、バイト配列として保持してから、そのバイト配列を別の Ink オブジェクトに読み込むことはできません。これは、バイト配列データを GIF として読み込んだ後、Microsoft® Windows® XP Tablet PC Edition はそのデータの形式を制御できないため、イメージをバイト配列にもう一度保持した後でそのデータに対して Load を呼び出すことができないからです。

この例では、保存されたインクがファイルから InkOverlay オブジェクトの Ink オブジェクトに読み込まれます。

Try
    ' Ink.Load() must work on a new (unused) ink object. 
    ' Otherwise, an exception is raised.
    mInkOverlay.Enabled = False
    mInkOverlay.Ink = New Ink()
    mInkOverlay.Enabled = True
    ' FILE_NAME is a class level const
    Using FS As FileStream = New FileStream(FILE_NAME, FileMode.Open)
        ' read the bytes from the file
        Dim isf(FS.Length) As Byte
        FS.Read(isf, 0, FS.Length)
        ' and load the Ink object
        mInkOverlay.Ink.Load(isf)
    End Using
Catch
    ' handle or rethrow
End Try
try
{
    // Ink.Load() must work on a new (unused) ink object. 
    // Otherwise, an exception is raised.
    mInkOverlay.Enabled = false;
    mInkOverlay.Ink = new Ink();
    mInkOverlay.Enabled = true;
    // FILE_NAME is a class level const
    using (FileStream FS = new FileStream(FILE_NAME, FileMode.Open))
    {
        // read the bytes from the file
        byte[] isf = new byte[FS.Length];
        FS.Read(isf, 0, (int)FS.Length);
        // and load the Ink object
        mInkOverlay.Ink.Load(isf);
    }
}
catch 
{
    // handle or rethrow
}

プラットフォーム

Windows Vista

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

バージョン情報

.NET Framework

サポート対象 : 3.0

参照

参照

Ink クラス

Ink メンバ

Microsoft.Ink 名前空間

Ink.Save