共用方式為


ImageNode 類別

表示應用程式中可能存在任何非筆墨影像之二維區域的 ContextNode

命名空間:  Microsoft.Ink
組件:  Microsoft.Ink.Analysis (在 Microsoft.Ink.Analysis.dll 中)

語法

'宣告
Public NotInheritable Class ImageNode _
    Inherits ContextNode
'用途
Dim instance As ImageNode
public sealed class ImageNode : ContextNode
public ref class ImageNode sealed : public ContextNode
public final class ImageNode extends ContextNode
public final class ImageNode extends ContextNode

備註

InkAnalyzer 不會產生 ImageNode 物件。應用程式會使用 ContextNode.CreateSubNode 方法,將 ImageNode 物件加入至內容節點樹狀目錄。如果分析器的狀態為永續性,這些節點也會是永續性。

未來的辨識器可能會使用 ImageNode 物件所定義的區域,以判斷任何筆墨是否附註非筆墨影像。

ImageNode 不能有任何子系。

範例

下列範例會將 ImageNode 物件加入至 PictureBox (英文) 控制項 (變數名稱為 thePictureBox) 的 InkAnalyzer (變數名稱為 theInkAnalyzer)。範例中會將 PictureBox 控制項的位置從像素座標轉換為筆墨座標。它會將 ImageNode 物件的 Data 屬性設定為 PictureBoxImage (英文) 屬性。

' Add image node
Dim pictureNode As ImageNode = _
    theInkAnalyzer.RootNode.CreateSubNode(Microsoft.Ink.ContextNodeType.Image)

' Convert pixel coordinates to pixel coordinates
Dim pictureTopLeft As Point = thePictureBox.Location
Dim pictureBottomRight As New Point(thePictureBox.Right, thePictureBox.Bottom)
Dim panelGraphics As Graphics = theNotesPanel.CreateGraphics()
theInkCollector.Renderer.PixelToInkSpace(panelGraphics, pictureTopLeft)
theInkCollector.Renderer.PixelToInkSpace(panelGraphics, pictureBottomRight)
panelGraphics.Dispose()

' Set the location of the image node
pictureNode.SetLocation(New AnalysisRegion(New Rectangle(pictureTopLeft.X, _
    pictureTopLeft.Y, pictureBottomRight.X - pictureTopLeft.X, _
    pictureBottomRight.Y - pictureTopLeft.Y)))

' Serialize the image to a byte array and set ImageNode.Data to the array.
Using stream As System.IO.MemoryStream = New System.IO.MemoryStream()

    thePictureBox.Image.Save(stream, thePictureBox.Image.RawFormat)
    pictureNode.Data = stream.ToArray()
End Using
// Add image node
ImageNode pictureNode = (ImageNode)
    theInkAnalyzer.RootNode.CreateSubNode(Microsoft.Ink.ContextNodeType.Image);

// Convert pixel coordinates to pixel coordinates
Point pictureTopLeft = thePictureBox.Location;
Point pictureBottomRight = new Point(thePictureBox.Right,
    thePictureBox.Bottom);
Graphics panelGraphics = theNotesPanel.CreateGraphics();
theInkCollector.Renderer.PixelToInkSpace(panelGraphics, ref pictureTopLeft);
theInkCollector.Renderer.PixelToInkSpace(panelGraphics, ref pictureBottomRight);
panelGraphics.Dispose();

// Set the location of the image node
pictureNode.SetLocation(new AnalysisRegion(new Rectangle(pictureTopLeft.X,
    pictureTopLeft.Y, pictureBottomRight.X - pictureTopLeft.X,
    pictureBottomRight.Y - pictureTopLeft.Y)));

// Serialize the image to a byte array and set ImageNode.Data to the array.
using (System.IO.MemoryStream stream = new System.IO.MemoryStream())
{
    thePictureBox.Image.Save(stream, thePictureBox.Image.RawFormat);
    pictureNode.Data = stream.ToArray();
}

繼承階層架構

System.Object
  Microsoft.Ink.ContextNode
    Microsoft.Ink.ImageNode

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

平台

Windows Vista

.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱 .NET Framework 系統需求

版本資訊

.NET Framework

支援版本:3.0

請參閱

參考

ImageNode 成員

Microsoft.Ink 命名空間

Microsoft.Ink.TextWordNode