目录
2.3.1 渲染控件:渲染控件上自定义图形的方法
描述
环境:VM4.2 + VS2013及以上
现象:VM4.2如何在渲染控件上自定义图形?
解答
VM4.2二次开发相比较VM4.0二次开发,渲染控件上自定义图形有一些更新,除了接口vmRenderControl.DrawShape(),新增加一个接口vmRenderControl.AddShape(),前者是立刻绘制,后者是在下次刷新渲染时自动绘制。所以在VM4.0二次开发回调函数中图像渲染并添加自定义图形时, DrawShape接口函数前需要添加延时,不然回调中的图像渲染还没更新,自定义的图形已经调用DrawShape函数,从而导致自定义图形不能很好的渲染在图像上。在VM4.2二次开发中使用AddShape接口就不要加延时,它会在图像渲染结束后再绘制自定义图形。
手动添加引用VMControls.WPF.dll、WindowsBase.dll,添加后,引用属性【复制本地】改为false;渲染控件需要先绑定图像,再调用渲染控件的AddShape绘图接口;支持直线、圆形、矩形、文本等图形元素绘制;绘制时机:流程运行结束,在流程结果回调函数中绘制。下面绘制了直线和文本,其它图形依次类推。
C#
//绘制直线
VMControls.WPF.LineEx line = new VMControls.WPF.LineEx(new System.Windows.Point(100, 100), new System.Windows.Point(600, 600), stroke: "#FF0000", strokeThickness: 10);
vmRenderControl1.AddShape(line);
//绘制文本
VMControls.WPF.TextEx text = new VMControls.WPF.TextEx("欢迎使用VM4.2二次开发!", new System.Windows.Point(1000, 1000), fontSize: 20, stroke: "#FF0000");
vmRenderControl1.AddShape(text);
问题根因
不熟悉如何绘制自定义图形。
2.3.2 参数控件:参数配置控件绑定模块的方法
描述
环境:VM4.2 + VS2013及以上
现象:如何给参数配置控件绑定指定模块?
解答
- 参数配置控件绑定模块方法(C#),示例代码如下。
C#
// 参数配置控件模块绑定
private void button3_Click(object sender, EventArgs e)
{
try
{
//参数配置
var blobTool = (VMControls.Interface.IVmModule)VmSolution.Instance["流程1.BLOB分析1"];
//参数配置控件
vmParamsConfigControl1.ModuleSource=blobTool;
//参数配置控件带渲染
vmParamsConfigWithRenderControl1.ModuleSource = blobTool;
}
catch (VmException ex)
{
MessageBox.Show(Convert.ToString(ex.errorCode, 16));
}
}
2.参数配置控件绑定模块方法(C++),代码如下。
C++
//参数设置
void CMFCApplication5Dlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
try
{
auto pObject = (CModuParamsBase*)(*m_pVmSol)[“流程1.圆查找1”];
m_ParamsRender.SetParamsInfo(pObject, "");
}
catch (CVmException ex)
{
CString strTemp;
strTemp.Format(_T("%d"), ex.GetErrorCode());
}
}
3.绑定效果
问题根因
不熟悉控件的资源绑定方法。
2.3.3 控件颜色:控件颜色修改方法
描述
环境:VM4.2 + VS2013及以上
现象:如何修改控件颜色?
解答
- 修改控件背景色,示例代码(C#)如下。注意:渲染控件颜色修改的前提是渲染控件已经绘制到窗口中。
当通过拖拉渲染控件到窗口中时,控件颜色修改只能写在窗口初始化之后,如Load事件中或按钮事件中;
当通过动