次の方法で共有


InkCollector.Renderer プロパティ

インクを描画するために使用される Renderer オブジェクトを取得または設定します。

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

構文

'宣言
Public Property Renderer As Renderer
'使用
Dim instance As InkCollector
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)

プロパティ値

型 : Microsoft.Ink.Renderer
インクを描画するために使用される Renderer オブジェクト。

解説

特定のウィンドウ メッセージを処理する場合、InkCollector に関連付けられた Renderer を変更すると、再入関数が呼び出されることがあり、予期しない結果が生じる可能性があります。たとえば、異なる Renderer に変更したり、メッセージ ハンドラ内でその変換を変更すると、再入呼び出しが発生します。これは、WM_ACTIVATEWM_ACTIVATEAPPWM_NCACTIVATEWM_PAINT、wParam が SC_HOTKEY または SC_TASKLIST に設定されている場合のWM_SYSCOMMAND および WM_SYSKEYDOWN (Alt+Tab キーまたは Alt+Esc キーの組み合わせで処理される場合) のメッセージに影響します。これはシングル スレッド アパートメント モデル アプリケーションに関する問題です。

次の例では、代替の Renderer オブジェクトを使用して、InkCollector オブジェクト、InkOverlay オブジェクト、または InkPicture オブジェクトの拡大表示されたビューを提供する方法を示します。

代替の Renderer オブジェクトを使用する前に、目的の拡大変換を提供するためにこれが初期化され、既定のレンダリング動作に戻すために元の Renderer オブジェクトが保存されます。

zoomRenderer = New Renderer()
Dim zoomBy2 As Matrix = New Matrix()
zoomBy2.Scale(2, 2)
zoomRenderer.SetObjectTransform(zoomBy2)
' mInkObject can be InkCollector, InkOverlay, or InkPicture
origRenderer = mInkObject.Renderer
zoomRenderer = new Renderer();
Matrix zoomBy2 = new Matrix();
zoomBy2.Scale(2, 2);
zoomRenderer.SetObjectTransform(zoomBy2);
// mInkObject can be InkCollector, InkOverlay, or InkPicture
origRenderer = mInkObject.Renderer;

CheckBox オブジェクトの CheckChanged イベントへの応答として、適切な Renderer オブジェクトが割り当てられ、インク領域が再描画されます。

If DirectCast(sender, CheckBox).Checked Then
    ' mInkObject can be InkCollector, InkOverlay, or InkPicture
    mInkObject.Renderer = zoomRenderer
Else
    mInkObject.Renderer = origRenderer
End If
' refresh to show the transformed ink. In production code
' you should invalidate only the necessary area that is 
' affected by the transformation but for simplicity here
' we will invalidate the entire form
Me.Refresh()
if (((CheckBox)sender).Checked)
{
    // mInkObject can be InkCollector, InkOverlay, or InkPicture
    mInkObject.Renderer = zoomRenderer;
}
else
{
    mInkObject.Renderer = origRenderer;
}
// refresh to show the transformed ink. In production code
// you should invalidate only the necessary area that is 
// affected by the transformation but for simplicity here
// we will invalidate the entire form
this.Refresh();

次の例では、Renderer オブジェクトを使用して、インク空間座標で表されている四角形を、ピクセル座標で表される四角形に変換する方法を示します。

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

    ' Convert using a Renderer object
    Dim tGraphics As Graphics = CreateGraphics()
    Dim tRenderer As Renderer = New Renderer()
    tRenderer.InkSpaceToPixel(tGraphics, leftTop)
    tRenderer.InkSpaceToPixel(tGraphics, rightBottom)

    ' Clean up
    tGraphics.Dispose()

    ' Return new rectangle
    Return New Rectangle(leftTop, New Size(rightBottom.X - leftTop.X, rightBottom.Y - leftTop.Y))
End Function
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 a Renderer object
    Graphics tGraphics = CreateGraphics();
    Renderer tRenderer = new Renderer();
    tRenderer.InkSpaceToPixel(tGraphics, ref leftTop);
    tRenderer.InkSpaceToPixel(tGraphics, ref rightBottom);

    // Clean up
    tGraphics.Dispose();

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

プラットフォーム

Windows Vista

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

バージョン情報

.NET Framework

サポート対象 : 3.0

参照

参照

InkCollector クラス

InkCollector メンバ

Microsoft.Ink 名前空間

Renderer