Share via


ImageNode.SetLocation Method

Sets the ___location of the non-ink image on the application document.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)

Syntax

'Declaration
Public Sub SetLocation ( _
    ___location As AnalysisRegion _
)
'Usage
Dim instance As ImageNode 
Dim ___location As AnalysisRegion

instance.SetLocation(___location)
public void SetLocation(
    AnalysisRegion ___location
)
public:
void SetLocation(
    AnalysisRegion^ ___location
)
public function SetLocation(
    ___location : AnalysisRegion
)

Parameters

  • ___location
    Type: Microsoft.Ink.AnalysisRegion

    The ___location where the non-ink image is on the application document, in ink coordinates.

Remarks

The ___location is set in ink coordinates.

Examples

The following example adds an ImageNode object to an InkAnalyzer, theInkAnalyzer, for a PictureBox control, thePictureBox. It converts the ___location of the PictureBox control from pixel coordinates to ink coordinates. It sets the Data property of the ImageNode object to be the Image property of the PictureBox.

' 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();
}

Platforms

Windows 7, Windows Vista, Windows Server 2008 R2, Windows Server 2008

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

ImageNode Class

ImageNode Members

Microsoft.Ink Namespace