←选择平台

RenderRedirect方法

总结

将查看器的内容呈现给外部上下文。

语法
c#
VB
c++
公共虚拟无效RenderRedirect (图形图形ImageViewerRenderRedirectOptions选项LeadRectclipRectangle
公共重写的RenderRedirect (按值传递图形作为System.Drawing.Graphics,按值传递选项作为ImageViewerRenderRedirectOptions按值传递clipRectangle作为LeadRect
公共虚拟无效RenderRedirect (系统::图::图形^图形ImageViewerRenderRedirectOptions选项LeadRectclipRectangle

参数

图形

要向其呈现查看器内容的目标设备上下文。

选项

渲染选项

clipRectangle

剪切矩形使用。

讲话

此方法可用于将查看器的内容呈现到外部上下文。ImageViewerPanControl使用此方法在单独的外部控件中显示较小版本的查看器。

要获取查看器表面的“快照”,以执行屏幕捕获或打印等操作,请使用RenderRedirect将目标上下文(打印机或位图)传递给它。

要对平移窗口等操作执行实时更新,请订阅RedirectRender事件,以便在查看器内容更改时获得通知。然后调用RenderRedirect将查看器的内容呈现到目标设备。

在呈现周期期间,的值IsRenderRedirected将被设置为真正的如果此特定呈现操作针对的是查看器本身以外的外部设备。如果正在执行自定义呈现,则可以检查此属性的值以应用所需的任何修改。

例子

这个示例将在查看器内容更改时将查看器的内容镜像到一个外部控件,并进行实时更新。

imageview例如,删除示例函数内的所有代码(搜索“// TODO: add example code here”注释),并插入以下代码:

c#
VB
使用Leadtools;使用Leadtools.Controls;使用Leadtools.Codecs;使用Leadtools.Drawing;使用Leadtools.ImageProcessing;使用Leadtools.ImageProcessing.Color;公共无效TestRedirectRender ()PictureBox control =图片框();控制。宽度= 400;控制。做ck = DockStyle.Right;control.BringToFront ();_imageViewer.BringToFront ();保龄球renderView =控制。双Click += (sender, e) =>renderView = !control.Invalidate ();};控制。Paint += (sender, e) =>图形= e.图形;intDelta = 20;LeadRect destRect = LeadRect。创建(delta, delta, control.ClientSize.Width - delta * 2, control.ClientSize.Height - delta * 2);LeadRect clipRect = destRect;ImageViewerRenderRedirectOptions选项=ImageViewerRenderRedirectOptions ();ImageViewerItem item =如果(renderView !)item = _imageViewer.Items[0];LeadRectD sourceRect;如果(项目= =sourceRect = _imageViewer。GetViewBounds (真正的);其他的sourceRect = _imageViewer。ImageViewerItemPart GetItemViewBounds(项目。形象,);选项。RenderBackgrounds =选项。RenderBorders =选项。RenderItemStates =选项。RenderShadows =选项。RenderText =选项。CreateTransform(_imageViewer, destRect, sourceRect, ControlSizeMode。FitAlways ControlAlignment。中心,ControlAlignment.Center);clipRect = options.Transform.TransformRect(sourceRect).ToLeadRect();_imageViewer。RenderRedirect(图形,选项,clipRect);graphics.DrawRectangle(笔。黑色,destRect。X, destRect。Y, destRect。Width + 1, destRect。高度+ 1);//现在让我们看看有多少视图是可见的(一些平移窗口会做的事情)LeadRectD矩形;如果(项目= =rect = _imageViewer。GetViewBounds (真正的真正的);其他的rect = _imageViewer。ImageViewerItemPart GetItemViewBounds(项目。形象,真正的);LeadPointD[] points =LeadPointD.Create(矩形。离开,rect.Top),LeadPointD.Create(矩形。对,rect.Bottom)};options.Transform.TransformPoints(点);xmin =点[0].X;ymin =点数[0].Y;Xmax = xmin;Ymax = ymin;intI = 1;i < points.Length;我+ +)如果(点[我]。X < xmin)xmin=点[i].X;如果(点[我]。X > xmax)xmax=点[i].X;如果(点[我]。Y < ymin)ymin=点[i].Y;如果(点[我]。Y > ymax)ymax=点[i].Y;LeadRectD bounds = LeadRectD。FromLTRB(xmin, ymin, xmax, ymax);RectangleF rc =RectangleF ((浮动)范围。X (浮动)范围。Y (浮动)范围。宽度,(浮动) bounds.Height);graphics.DrawRectangle(笔。黄色,rc。X, rc。Y, rc。宽度- 1 rc。高度- 1);};_imageViewer。RedirectRender += (sender, e) =>control.Invalidate ();};
进口Leadtools进口Leadtools。控制进口Leadtools。编解码器进口Leadtools。画进口Leadtools。ImageProcessing进口Leadtools.ImageProcessing.Color进口LeadtoolsControlsExamples.LeadtoolsExamples.Common公共TestRedirectRender ()昏暗的控制作为图片框=图片框()控制。宽度= 400控制。做ck = DockStyle.Rightcontrol.BringToFront ()_imageViewer.BringToFront ()昏暗的renderView作为布尔AddHandler控制。双Click,(发送者,e)renderView =renderViewcontrol.Invalidate ()结束AddHandler控制。油漆,(发送者,e)昏暗的图形作为图形= e.图形昏暗的δ作为整数= 20昏暗的destRect作为LeadRect = LeadRect。创建(delta, delta, control.ClientSize.Width - delta * 2, control.ClientSize.Height - delta * 2)昏暗的clipRect作为LeadRect = destRect昏暗的选项作为ImageViewerRenderRedirectOptions =ImageViewerRenderRedirectOptions ()昏暗的作为ImageViewerItem =没有什么如果renderView)然后item = _imageViewer.Items(0)结束如果昏暗的sourceRect作为LeadRectD如果没有什么然后sourceRect = _imageViewer。GetViewBounds (真正的其他的sourceRect = _imageViewer。ImageViewerItemPart GetItemViewBounds(项目。形象,选项。RenderBackgrounds =选项。RenderBorders =选项。RenderItemStates =选项。RenderShadows =选项。RenderText =结束如果选项。CreateTransform(_imageViewer, destRect, sourceRect, ControlSizeMode。FitAlways ControlAlignment。中心,ControlAlignment.Center)clipRect = options.Transform.TransformRect(sourceRect).ToLeadRect()_imageViewer。RenderRedirect(图形,选项,clipRect)graphics.DrawRectangle(笔。黑色,destRect。X, destRect。Y, destRect。Width + 1, destRect。高度+ 1)’现在让我们看看有多少视图是可见的(平移窗口会做的事情)昏暗的矩形作为LeadRectD如果没有什么然后rect = _imageViewer。GetViewBounds (真正的真正的其他的rect = _imageViewer。ImageViewerItemPart GetItemViewBounds(项目。形象,真正的结束如果昏暗的作为LeadPointD() = {leadpoint . create (rect. create)离开,rect.Top),LeadPointD.Create(矩形。对,rect.Bottom)}options.Transform.TransformPoints(分)昏暗的xmin作为=点(0)。X昏暗的ymin作为=点(0)。Y昏暗的xmax作为= xmin昏暗的ymax作为= ymin昏暗的作为整数= 1I <点。长度如果点(我)。X < xmin然后Xmin =点数(i)。X结束如果如果点(我)。X > xmax然后Xmax =点数(i)。X结束如果如果点(我)。Y < ymin然后Ymin =点数(i)。Y结束如果如果点(我)。Y > ymax然后Ymax =点(i)。Y结束如果I += 1循环昏暗的界限作为LeadRectD = LeadRectD。from mltrb (xmin, ymin, xmax, ymax)昏暗的钢筋混凝土作为RectangleF =RectangleF (CSng(bounds.X),CSng(bounds.Y),CSng(bounds.Width),CSng(bounds.Height))graphics.DrawRectangle(笔。黄色,rc。X, rc。Y, rc。宽度- 1 rc。高度- 1)结束AddHandler_imageViewer。RedirectRender,(发送方,e) control.Invalidate()结束
需求
目标平台
Leadtools。控制作为sembly
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。