Renderer.Draw 方法 (Graphics, Stroke)
在指定的 Graphics 图面上绘制 Stroke 对象。
命名空间: Microsoft.Ink
程序集: Microsoft.Ink(在 Microsoft.Ink.dll 中)
语法
声明
Public Sub Draw ( _
g As Graphics, _
stroke As Stroke _
)
用法
Dim instance As Renderer
Dim g As Graphics
Dim stroke As Stroke
instance.Draw(g, stroke)
public void Draw(
Graphics g,
Stroke stroke
)
public:
void Draw(
Graphics^ g,
Stroke^ stroke
)
public void Draw(
Graphics g,
Stroke stroke
)
public function Draw(
g : Graphics,
stroke : Stroke
)
参数
- g
类型:System.Drawing.Graphics
要用来进行绘制的 Graphics 对象。
- stroke
类型:Microsoft.Ink.Stroke
要绘制的 Stroke 对象。
备注
将基于使用 SetViewTransform 方法的方式相应地调整笔的宽度。具体而言,笔宽度将乘以(或调整为)视图变换的行列式的平方根。
备注
如果未显式设置笔宽度,则默认值为 53。只有将笔宽度乘以行列式的平方根才能得到正确的边界框。边界框的高度和宽度在每个方向上扩展该数量的一半。
例如,如果笔宽度为 53,行列式的平方根为 50,边界框为 (0, 0, 1000, 1000)。根据笔宽度,边界框在每个方向上的调整计算方法为 (53 * 50) / 2,右侧和下方增加一个单位。这样,将呈现出边界框 (-1325,-1325,2326,2326)。
Renderer 对象将视区和窗口原点强制到 0,0。将保存和还原任何现有设置,但 Renderer 不使用这些设置。若要执行滚动,请使用 Renderer 对象的 GetViewTransform 和 GetObjectTransform 方法。
示例
在此示例中,在 Ink 对象中创建一个 Stroke 对象。笔画 从墨迹区域的左上角直到右下角。笔画 在创建后立即显示在与 InkOverlay 对象关联的 Panel 上以及另一个面板上。要完成该操作,需要将不同的 Graphics 对象传递给 g 参数,分别调用 Draw 方法两次。
' get the bottom right point of the client area for ink
' Note: InkOverlay.AttachedControl property must be set
Dim bottomRight As Point = New Point(mInkOverlay.AttachedControl.ClientSize)
Using g1 As Graphics = mInkOverlay.AttachedControl.CreateGraphics()
' convert to HIMETRIC units
mInkOverlay.Renderer.PixelToInkSpace(g1, bottomRight)
' create the stroke
Dim strokePoints As Point() = New Point(1) {New Point(0), bottomRight}
Dim oneStroke As Stroke = mInkOverlay.Ink.CreateStroke(strokePoints)
' draw the stroke on the control attached to InkOverlay
mInkOverlay.Renderer.Draw(g1, oneStroke)
' now draw the stroke on another control also
Using g2 As Graphics = Me.panelForDraw.CreateGraphics()
mInkOverlay.Renderer.Draw(g2, oneStroke)
End Using
End Using
// get the bottom right point of the client area for ink
// Note: InkOverlay.AttachedControl property must be set
Point bottomRight = new Point(mInkOverlay.AttachedControl.ClientSize);
using (Graphics g1 = mInkOverlay.AttachedControl.CreateGraphics())
{
// convert to HIMETRIC units
mInkOverlay.Renderer.PixelToInkSpace(g1, ref bottomRight);
// create the stroke
Point[] strokePoints = new Point[2] { new Point(0), bottomRight };
Stroke oneStroke = mInkOverlay.Ink.CreateStroke(strokePoints);
// draw the stroke on the control attached to InkOverlay
mInkOverlay.Renderer.Draw(g1, oneStroke);
// now draw the stroke on another control also
using (Graphics g2 = this.panelForDraw.CreateGraphics())
{
mInkOverlay.Renderer.Draw(g2, oneStroke);
}
}
平台
Windows Vista
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:3.0