Share via


InkPicture.Renderer Property

Gets or sets the Renderer object that is used to draw ink.

Namespace: Microsoft.Ink
Assembly: Microsoft.Ink (in microsoft.ink.dll)

Syntax

'Declaration
Public Property Renderer As Renderer
'Usage
Dim instance As InkPicture
Dim value As Renderer

value = instance.Renderer

instance.Renderer = value
public Renderer Renderer { get; set; }
public:
property Renderer^ Renderer {
    Renderer^ get ();
    void set (Renderer^ value);
}
/** @property */
public Renderer get_Renderer ()

/** @property */
public void set_Renderer (Renderer value)
public function get Renderer () : Renderer

public function set Renderer (value : Renderer)
Not applicable.

Property Value

The Renderer object that is used to draw ink.

Example

This C# example creates an InkPicture control, theInkPicture, and two Renderer objects: originalRenderer, for the default view, and zoomedRenderer, for a zoomed view. The application determines which Renderer object is attached to theInkPicture in a click event, menuItemZoomed_Click.

[C#]

using Microsoft.Ink;
using System.Drawing.Drawing2D;
//...
    private Renderer zoomedRenderer;
    private Renderer originalRenderer;
//...
    public Form1()
    {
        //
        // Required for Windows Form Designer support
        //
        InitializeComponent();
  
        // ...
        // Initialize renderers
        zoomedRenderer = new Renderer();
        Matrix zoomBy2 = new Matrix();
        zoomBy2.Scale(2, 2);
        zoomedRenderer.SetObjectTransform(zoomBy2);
        originalRenderer = theInkPicture.Renderer;
    }
// ...
    private void menuItemZoomed_Click(object sender, System.EventArgs e)
    {
        if (theInkPicture.Renderer == originalRenderer)
        {
            theInkPicture.Renderer = zoomedRenderer;
            menuItemZoomed.Checked = true;
        }
        else
        {
            theInkPicture.Renderer = originalRenderer;
            menuItemZoomed.Checked = false;
        }
    Refresh();
    //...

This Microsoft® Visual Basic® .NET example creates an InkPicture control, theInkPicture, and two Renderer objects: originalRenderer, for the default view, and zoomedRenderer, for a zoomed view. The application determines which Renderer object is attached to theInkPicture in a click event, menuItemZoomed_Click.

[Visual Basic]

Imports Microsoft.Ink
Imports System.Drawing.Drawing2D
'...
    Private zoomedRenderer As Renderer
    Private originalRenderer As Renderer
'...
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    {
        // Initialize renderers
        zoomedRenderer = New Renderer()
        Matrix zoomBy2 = New Matrix()
        zoomBy2.Scale(2, 2)
        zoomedRenderer.SetObjectTransform(zoomBy2)
        originalRenderer = theInkPicture.Renderer
    }
'...
    Private Sub MenuItemZoomed_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MenuItemInk.Click
    {
        If theInkPicture.Renderer Is originalRenderer Then
            theInkPicture.Renderer = zoomedRenderer
            MenuItemZoomed.Checked = True
        Else
            theInkPicture.Renderer = originalRenderer
            MenuItemZoomed.Checked = False
        End If
        Refresh()
    }

This C# example contains a function that uses the Renderer property to convert a rectangle in ink space coordinates to pixel coordinates.

[C#]

using Microsoft.Ink;
//...
private Rectangle InkSpaceToPixelRectangle(Rectangle inkRectangle)
{
    // Get points for corners of rectangle
    Point leftTop = inkRectangle.Location;
    Point rightBottom = new Point(inkRectangle.Right, inkRectangle.Bottom);

    // Convert using Renderer
    Graphics tempGraphics = CreateGraphics();
    theInkPicture.Renderer.InkSpaceToPixel(tempGraphics, ref leftTop);
    theInkPicture.Renderer.InkSpaceToPixel(tempGraphics, ref rightBottom);

    // Clean up
    tempGraphics.Dispose();

    // Return new rectangle
    return new Rectangle(leftTop,
        new Size(rightBottom.X - leftTop.X, rightBottom.Y - leftTop.Y));
}

This Visual Basic .NET example contains a function that uses the Renderer property to convert a rectangle in ink space coordinates to pixel coordinates.

Imports Microsoft.Ink
'...
Private Function InkSpaceToPixelRectangle(ByVal inkRectangle As Rectangle) As Rectangle
    ' Get points for corners of rectangle
    Dim leftTop As Point = inkRectangle.Location
    Dim rightBottom As New Point(inkRectangle.Right, inkRectangle.Bottom)

    ' Convert using Renderer
    Dim tempGraphics As Graphics = CreateGraphics()
    theInkPicture.Renderer.InkSpaceToPixel(tempGraphics, leftTop)
    theInkPicture.Renderer.InkSpaceToPixel(tempGraphics, rightBottom)

    ' Clean up
    tempGraphics.Dispose()

    ' Return new rectangle
    Return New Rectangle(leftTop, _
        New Size(rightBottom.X - leftTop.X, rightBottom.Y - leftTop.Y))
End Function

Platforms

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

InkPicture Class
InkPicture Members
Microsoft.Ink Namespace
Renderer