将查看器的内容呈现给外部上下文。
公共虚拟无效RenderRedirect (
图形图形,
ImageViewerRenderRedirectOptions选项,
LeadRectclipRectangle
)
公共重写的子RenderRedirect (
按值传递图形作为System.Drawing.Graphics,
按值传递选项作为ImageViewerRenderRedirectOptions,
按值传递clipRectangle作为LeadRect
)
公共:
虚拟无效RenderRedirect (
系统::图::图形^图形,
ImageViewerRenderRedirectOptions^选项,
LeadRect^clipRectangle
)
图形
要向其呈现查看器内容的目标设备上下文。
选项
渲染选项
clipRectangle
剪切矩形使用。
此方法可用于将查看器的内容呈现到外部上下文。ImageViewerPanControl使用此方法在单独的外部控件中显示较小版本的查看器。
要获取查看器表面的“快照”,以执行屏幕捕获或打印等操作,请使用RenderRedirect将目标上下文(打印机或位图)传递给它。
要对平移窗口等操作执行实时更新,请订阅RedirectRender事件,以便在查看器内容更改时获得通知。然后调用RenderRedirect将查看器的内容呈现到目标设备。
在呈现周期期间,的值IsRenderRedirected将被设置为真正的如果此特定呈现操作针对的是查看器本身以外的外部设备。如果正在执行自定义呈现,则可以检查此属性的值以应用所需的任何修改。
这个示例将在查看器内容更改时将查看器的内容镜像到一个外部控件,并进行实时更新。
从imageview例如,删除示例函数内的所有代码(搜索“// TODO: add example code here”注释),并插入以下代码:
使用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.Right
control.BringToFront ()
_imageViewer.BringToFront ()
昏暗的renderView作为布尔=假
AddHandler控制。双Click,
子(发送者,e)
renderView =不renderView
control.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
昏暗的我作为整数= 1
做而I <点。长度
如果点(我)。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()
结束子
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。