다음을 통해 공유


Ink.Load 메서드

업데이트: 2007년 11월

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 개체에만 로드할 수 있습니다. 즉, Ink 개체에는 Stroke 개체가 수집되어 있거나 속성이 연결되어 있지 않아야 합니다. 수집된 스트로크나 연결된 속성이 있는 Ink 개체에 잉크를 로드하려고 하면 해당 스트로크나 속성이 Ink 개체에서 삭제된 경우라도 예외가 throw됩니다. 이러한 일이 발생하는 원인은 Id 속성이 할당되는 방식 때문입니다. Stroke 개체에는 고유한 Id 속성이 할당되는데, 이 Id 속성은 Stroke 개체가 Ink 개체에서 삭제된 후에도 사용되지 않습니다. 따라서 Ink 개체에 Id 속성이 1인 Stroke가 포함된 상태에서 Stroke를 삭제하고 이 Ink 개체에 다른 잉크 데이터를 로드하면 새 Stroke 개체의 Id 속성은 2부터 시작해야 합니다. 여러 Ink 개체에서 이를 추적하면 오류가 발생할 수 있으므로 이러한 추적은 허용되지 않습니다.

참고

비어 있지 않은 Ink 개체에 잉크를 로드하려고 하면 Load 메서드를 호출할 때 모든 CustomStrokes 또는 ExtendedProperties를 비롯하여 Ink 개체의 모든 데이터가 손실됩니다.

Save 메서드를 사용하면 바이트 데이터 배열로 구성된 잉크를 GIF 형식으로 유지할 수 있습니다. GIF 지속성 형식은 PersistenceFormat 열거형 형식에 지정되어 있습니다. 바이트 데이터 배열이 있는 상태에서 이를 다른 Ink 개체로 로드할 수도 있습니다. 즉, Save 메서드를 호출하여 GIF 형식이 아닌 바이트 배열을 수신한 것과 동일한 방식으로 GIF 호환 바이트 배열 데이터를 다른 Ink 개체에 로드할 수 있습니다.

참고

이미지를 만들어 바이트 배열로 유지한 다음 해당 바이트 배열을 다른 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