赞
踩
先看效果:
再看结构,Viewer(影像控件)分为N个Cell(单元格),每个单元格分为N个Box(影像容器),
当默认情况为2x2的行列时,结构如下图:
其中,我们在WPF设计器中创建一个用户控件叫Viewer,使用Grid容器,默认2x2,再根据自己的业务需要创建用户控件Cell和用户控件Box,
在Viewer中声明变量集合来记录Cell,同理,在Cell中声明变量集合来记录Box:
- /// <summary>
- /// 图像单元格集合
- /// </summary>
- public List<ET_MedicalCell> Cells = new List<ET_MedicalCell>();
情况1:变换行列,例如从2x2 变换到3x3:
思路:在集合中添加子控件,为行列属性设置触发器,
- private int rowsCount = 2;
- /// <summary>
- /// 单元格的行数
- /// </summary>
- public int RowsCount
- {
- get { return rowsCount; }
- set
- {if (value < -1)
- {
- rowsCount = 0;
- }
- else if (value > 10)
- {
- rowsCount = 10;
- }
- else
- {
- rowsCount = value;
- }
- SetLayout();
- SetCellCount();
- }
- }
添加Cell:
- ET_MedicalCell cell = new ET_MedicalCell(1, 1, this);
- MdiGrid.Children.Add(cell);
- Cells.Add(cell);
情况2:变换行列,平铺与层叠切换:
思路:Cell数量始终为1,Box数量变为行列数量
情况3:单元格双击放大:
思路:Cell数量始终为1,Box数量始终为1
情况4:医生实际使用中的复合操作:
思路:控制Cell和Box的数量,记录好变换之前的位置,因为有可能会变回去,直接引用变换前的对象和位置即可,无需重新加载Dicom影像而浪费效率和资源。
C#开发PACS、RIS、3D医学影像处理系统系列教程 目录整理:
菜鸟入门篇
C#开发PACS医学影像处理系统(七):读取影像Dicom信息
C#开发PACS医学影像处理系统(十):Dicom影像下载策略与算法
C#开发PACS医学影像处理系统(十一):Dicom影像挂片协议
C#开发PACS医学影像处理系统(十二):绘图处理之图形标记
C#开发PACS医学影像处理系统(十三):绘图处理之病灶测量
C#开发PACS医学影像处理系统(十四):处理Dicom影像窗宽窗位
C#开发PACS医学影像处理系统(十五):Dicom影像交叉定位线算法
C#开发PACS医学影像处理系统(十六):2D处理之影像平移和缩放
C#开发PACS医学影像处理系统(十七):2D处理之影像旋转和翻转
医学影像三维篇
C#开发PACS医学影像三维重建(一):使用VTK重建3D影像
C#开发PACS医学影像三维重建(二):使用VTK进行体绘制
C#开发PACS医学影像三维重建(三):纹理映射与颜色传输
C#开发PACS医学影像三维重建(四):3D网格平滑效果
C#开发PACS医学影像三维重建(五):基于梯度透明的组织漫游
C#开发PACS医学影像三维重建(六):三维光源与阴影效果
C#开发PACS医学影像三维重建(七):空间测量与标注
C#开发PACS医学影像三维重建(八):VR体绘制
C#开发PACS医学影像三维重建(九):MPR三视图切面重建
C#开发PACS医学影像三维重建(十):MIP最小密度投影
C#开发PACS医学影像三维重建(十一):CPR曲面重建
C#开发PACS医学影像三维重建(十二):VE虚拟内镜技术
熟手进阶篇
C#处理医学影像(一):基于Hessian矩阵的血管肺纹理骨骼增强对比
C#处理医学影像(二):基于Hessian矩阵的医学影像增强与窗宽窗位
胶片打印:
C#开发医学影像胶片打印系统(二):胶片打印机通讯
C#开发医学影像胶片打印系统(三):Pacs二维功能在排版中的应用
登峰造极篇
C#开发基于Python人工智能的肺结节自动检测
C#开发基于Python人工智能的脊柱侧弯曲率算法
C#开发基于Python机器学习的医学影像骨骼仿真动画
C#开发基于Python机器学习的术后恢复模拟
C#开发基于U3D的VR眼镜设备虚拟人体三维重建
C#开发基于全息投影的裸眼3D医学影像显示技术
免费下载
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。