Optional delegate method for additional processing.
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.MedicalViewer
Private Class MedicalViewerForm : Inherits Form
Private _medicalViewer As MedicalViewer
Private Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs)
_medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)
End Sub
Public Sub New()
Dim _codecs As RasterCodecs = New RasterCodecs()
Dim _image As RasterImage
AddHandler SizeChanged, AddressOf MedicalViewerForm_SizeChanged
' Create the medical viewer and adjust the size and the location.
_medicalViewer = New MedicalViewer(1, 2)
_medicalViewer.Location = New Point(0, 0)
_medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)
' Load an image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "xa.dcm"))
Dim cell As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 1, 1)
' add some actions that will be used to change the properties of the images inside the control.
cell.AddAction(MedicalViewerActionType.WindowLevel)
cell.AddAction(MedicalViewerActionType.Alpha)
cell.AddAction(MedicalViewerActionType.Offset)
cell.AddAction(MedicalViewerActionType.Stack)
' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active)
cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)
cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)
' adjust some properties of the cell and add some tags.
cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")
cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)
cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)
cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)
cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)
_medicalViewer.Cells.Add(cell)
' Load another image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "mr.dcm"))
Dim cell1 As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 2, 2)
_medicalViewer.Cells.Add(cell1)
' add some actions that will be used to change the properties of the images inside the control.
cell1.AddAction(MedicalViewerActionType.WindowLevel)
cell1.AddAction(MedicalViewerActionType.Alpha)
cell1.AddAction(MedicalViewerActionType.Offset)
cell1.AddAction(MedicalViewerActionType.Stack)
' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active)
cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)
cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)
' adjust some properties of the cell and add some tags.
cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")
cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)
cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)
cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)
cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)
Controls.Add(_medicalViewer)
_medicalViewer.Dock = DockStyle.Fill
End Sub
Public ReadOnly Property Viewer() As MedicalViewer
Get
Return _medicalViewer
End Get
End Property
End Class
Private Function GetMedicalControl() As MedicalViewerForm
Return New MedicalViewerForm()
End Function
' This example will link the active sub-cell of the first cell to the second cell and vice versa.
Public Sub MedicalViewerActiveSubCellChangedExample()
Dim myForm As MedicalViewerForm = GetMedicalControl()
Dim medicalViewer As MedicalViewer = myForm.Viewer
Dim cell As MedicalViewerMultiCell = CType(medicalViewer.Cells(0), MedicalViewerMultiCell)
Dim cell1 As MedicalViewerMultiCell = CType(medicalViewer.Cells(1), MedicalViewerMultiCell)
AddHandler cell.ActiveSubCellChanged, AddressOf medicalViewer_ActiveSubCellChanged
AddHandler cell1.ActiveSubCellChanged, AddressOf cell1_ActiveSubCellChanged
myForm.ShowDialog()
End Sub
Private Sub cell1_ActiveSubCellChanged(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs)
medicalViewer_ActiveSubCellChanged(sender, e)
End Sub
Private Sub medicalViewer_ActiveSubCellChanged(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs)
Dim cell As MedicalViewerMultiCell = CType(sender, MedicalViewerMultiCell)
Dim index As Integer
If (e.CellIndex = 1) Then
index = 0
Else
index = 1
End If
Dim theOtherCell As MedicalViewerMultiCell = CType(cell.ParentViewer.Cells(index), MedicalViewerMultiCell)
Dim stackProperties As MedicalViewerStack = CType(theOtherCell.GetActionProperties(MedicalViewerActionType.Stack), MedicalViewerStack)
stackProperties.ActiveSubCell = e.SubCellIndex Mod (theOtherCell.Rows * theOtherCell.Columns)
stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell
theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties)
stackProperties.Dispose()
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.MedicalViewer;
class MedicalViewerForm : Form
{
private MedicalViewer _medicalViewer;
void MedicalViewerForm_SizeChanged(object sender, EventArgs e)
{
_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
}
public MedicalViewerForm()
{
RasterCodecs _codecs = new RasterCodecs();
RasterImage _image;
this.SizeChanged += new EventHandler(MedicalViewerForm_SizeChanged);
// Create the medical viewer and adjust the size and the location.
_medicalViewer = new MedicalViewer(1, 2);
_medicalViewer.Location = new Point(0, 0);
_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
// Load an image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm"));
MedicalViewerMultiCell cell = new MedicalViewerMultiCell(_image, true, 1, 1);
// add some actions that will be used to change the properties of the images inside the control.
cell.AddAction(MedicalViewerActionType.WindowLevel);
cell.AddAction(MedicalViewerActionType.Alpha);
cell.AddAction(MedicalViewerActionType.Offset);
cell.AddAction(MedicalViewerActionType.Stack);
// assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);
// adjust some properties of the cell and add some tags.
cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);
_medicalViewer.Cells.Add(cell);
// Load another image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"mr.dcm"));
MedicalViewerMultiCell cell1 = new MedicalViewerMultiCell(_image, true, 2, 2);
_medicalViewer.Cells.Add(cell1);
// add some actions that will be used to change the properties of the images inside the control.
cell1.AddAction(MedicalViewerActionType.WindowLevel);
cell1.AddAction(MedicalViewerActionType.Alpha);
cell1.AddAction(MedicalViewerActionType.Offset);
cell1.AddAction(MedicalViewerActionType.Stack);
// assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);
// adjust some properties of the cell and add some tags.
cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);
Controls.Add(_medicalViewer);
_medicalViewer.Dock = DockStyle.Fill;
}
public MedicalViewer Viewer
{
get { return _medicalViewer; }
}
}
MedicalViewerForm GetMedicalControl()
{
return new MedicalViewerForm();
}
// This example will link the active sub-cell of the first cell to the second cell and vice versa.
public void MedicalViewerActiveSubCellChangedExample()
{
MedicalViewerForm myForm = GetMedicalControl();
MedicalViewer medicalViewer = myForm.Viewer;
MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(medicalViewer.Cells[0]);
MedicalViewerMultiCell cell1 = (MedicalViewerMultiCell)(medicalViewer.Cells[1]);
cell.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(medicalViewer_ActiveSubCellChanged);
cell1.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(cell1_ActiveSubCellChanged);
myForm.ShowDialog();
}
void cell1_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
{
medicalViewer_ActiveSubCellChanged(sender, e);
}
void medicalViewer_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
{
MedicalViewerMultiCell cell = (MedicalViewerMultiCell)sender;
int index = (e.CellIndex == 1) ? 0 : 1;
MedicalViewerMultiCell theOtherCell = (MedicalViewerMultiCell)(cell.ParentViewer.Cells[index]);
MedicalViewerStack stackProperties = (MedicalViewerStack)theOtherCell.GetActionProperties(MedicalViewerActionType.Stack);
stackProperties.ActiveSubCell = e.SubCellIndex % (theOtherCell.Rows * theOtherCell.Columns);
stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell;
theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties);
stackProperties.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.MedicalViewer
Private Class MedicalViewerForm : Inherits Form
Private _medicalViewer As MedicalViewer
Private Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs)
_medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)
End Sub
Public Sub New()
Dim _codecs As RasterCodecs = New RasterCodecs()
Dim _image As RasterImage
AddHandler SizeChanged, AddressOf MedicalViewerForm_SizeChanged
' Create the medical viewer and adjust the size and the location.
_medicalViewer = New MedicalViewer(1, 2)
_medicalViewer.Location = New Point(0, 0)
_medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)
' Load an image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "xa.dcm"))
Dim cell As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 1, 1)
' add some actions that will be used to change the properties of the images inside the control.
cell.AddAction(MedicalViewerActionType.WindowLevel)
cell.AddAction(MedicalViewerActionType.Alpha)
cell.AddAction(MedicalViewerActionType.Offset)
cell.AddAction(MedicalViewerActionType.Stack)
' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active)
cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)
cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)
' adjust some properties of the cell and add some tags.
cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")
cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)
cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)
cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)
cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)
_medicalViewer.Cells.Add(cell)
' Load another image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "mr.dcm"))
Dim cell1 As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 2, 2)
_medicalViewer.Cells.Add(cell1)
' add some actions that will be used to change the properties of the images inside the control.
cell1.AddAction(MedicalViewerActionType.WindowLevel)
cell1.AddAction(MedicalViewerActionType.Alpha)
cell1.AddAction(MedicalViewerActionType.Offset)
cell1.AddAction(MedicalViewerActionType.Stack)
' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active)
cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)
cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)
' adjust some properties of the cell and add some tags.
cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")
cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)
cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)
cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)
cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)
Controls.Add(_medicalViewer)
_medicalViewer.Dock = DockStyle.Fill
End Sub
Public ReadOnly Property Viewer() As MedicalViewer
Get
Return _medicalViewer
End Get
End Property
End Class
Private Function GetMedicalControl() As MedicalViewerForm
Return New MedicalViewerForm()
End Function
' This example will link the active sub-cell of the first cell to the second cell and vice versa.
Public Sub MedicalViewerActiveSubCellChangedExample()
Dim myForm As MedicalViewerForm = GetMedicalControl()
Dim medicalViewer As MedicalViewer = myForm.Viewer
Dim cell As MedicalViewerMultiCell = CType(medicalViewer.Cells(0), MedicalViewerMultiCell)
Dim cell1 As MedicalViewerMultiCell = CType(medicalViewer.Cells(1), MedicalViewerMultiCell)
AddHandler cell.ActiveSubCellChanged, AddressOf medicalViewer_ActiveSubCellChanged
AddHandler cell1.ActiveSubCellChanged, AddressOf cell1_ActiveSubCellChanged
myForm.ShowDialog()
End Sub
Private Sub cell1_ActiveSubCellChanged(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs)
medicalViewer_ActiveSubCellChanged(sender, e)
End Sub
Private Sub medicalViewer_ActiveSubCellChanged(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs)
Dim cell As MedicalViewerMultiCell = CType(sender, MedicalViewerMultiCell)
Dim index As Integer
If (e.CellIndex = 1) Then
index = 0
Else
index = 1
End If
Dim theOtherCell As MedicalViewerMultiCell = CType(cell.ParentViewer.Cells(index), MedicalViewerMultiCell)
Dim stackProperties As MedicalViewerStack = CType(theOtherCell.GetActionProperties(MedicalViewerActionType.Stack), MedicalViewerStack)
stackProperties.ActiveSubCell = e.SubCellIndex Mod (theOtherCell.Rows * theOtherCell.Columns)
stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell
theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties)
stackProperties.Dispose()
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.MedicalViewer;
class MedicalViewerForm : Form
{
private MedicalViewer _medicalViewer;
void MedicalViewerForm_SizeChanged(object sender, EventArgs e)
{
_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
}
public MedicalViewerForm()
{
RasterCodecs _codecs = new RasterCodecs();
RasterImage _image;
this.SizeChanged += new EventHandler(MedicalViewerForm_SizeChanged);
// Create the medical viewer and adjust the size and the location.
_medicalViewer = new MedicalViewer(1, 2);
_medicalViewer.Location = new Point(0, 0);
_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
// Load an image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm"));
MedicalViewerMultiCell cell = new MedicalViewerMultiCell(_image, true, 1, 1);
// add some actions that will be used to change the properties of the images inside the control.
cell.AddAction(MedicalViewerActionType.WindowLevel);
cell.AddAction(MedicalViewerActionType.Alpha);
cell.AddAction(MedicalViewerActionType.Offset);
cell.AddAction(MedicalViewerActionType.Stack);
// assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);
// adjust some properties of the cell and add some tags.
cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);
_medicalViewer.Cells.Add(cell);
// Load another image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"mr.dcm"));
MedicalViewerMultiCell cell1 = new MedicalViewerMultiCell(_image, true, 2, 2);
_medicalViewer.Cells.Add(cell1);
// add some actions that will be used to change the properties of the images inside the control.
cell1.AddAction(MedicalViewerActionType.WindowLevel);
cell1.AddAction(MedicalViewerActionType.Alpha);
cell1.AddAction(MedicalViewerActionType.Offset);
cell1.AddAction(MedicalViewerActionType.Stack);
// assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);
// adjust some properties of the cell and add some tags.
cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);
Controls.Add(_medicalViewer);
_medicalViewer.Dock = DockStyle.Fill;
}
public MedicalViewer Viewer
{
get { return _medicalViewer; }
}
}
MedicalViewerForm GetMedicalControl()
{
return new MedicalViewerForm();
}
// This example will link the active sub-cell of the first cell to the second cell and vice versa.
public void MedicalViewerActiveSubCellChangedExample()
{
MedicalViewerForm myForm = GetMedicalControl();
MedicalViewer medicalViewer = myForm.Viewer;
MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(medicalViewer.Cells[0]);
MedicalViewerMultiCell cell1 = (MedicalViewerMultiCell)(medicalViewer.Cells[1]);
cell.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(medicalViewer_ActiveSubCellChanged);
cell1.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(cell1_ActiveSubCellChanged);
myForm.ShowDialog();
}
void cell1_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
{
medicalViewer_ActiveSubCellChanged(sender, e);
}
void medicalViewer_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
{
MedicalViewerMultiCell cell = (MedicalViewerMultiCell)sender;
int index = (e.CellIndex == 1) ? 0 : 1;
MedicalViewerMultiCell theOtherCell = (MedicalViewerMultiCell)(cell.ParentViewer.Cells[index]);
MedicalViewerStack stackProperties = (MedicalViewerStack)theOtherCell.GetActionProperties(MedicalViewerActionType.Stack);
stackProperties.ActiveSubCell = e.SubCellIndex % (theOtherCell.Rows * theOtherCell.Columns);
stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell;
theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties);
stackProperties.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.MedicalViewer;
class MedicalViewerForm : Form
{
private MedicalViewer _medicalViewer;
void MedicalViewerForm_SizeChanged(object sender, EventArgs e)
{
_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
}
public MedicalViewerForm()
{
RasterCodecs _codecs = new RasterCodecs();
RasterImage _image;
this.SizeChanged += new EventHandler(MedicalViewerForm_SizeChanged);
// Create the medical viewer and adjust the size and the location.
_medicalViewer = new MedicalViewer(1, 2);
_medicalViewer.Location = new Point(0, 0);
_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
// Load an image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm"));
MedicalViewerMultiCell cell = new MedicalViewerMultiCell(_image, true, 1, 1);
// add some actions that will be used to change the properties of the images inside the control.
cell.AddAction(MedicalViewerActionType.WindowLevel);
cell.AddAction(MedicalViewerActionType.Alpha);
cell.AddAction(MedicalViewerActionType.Offset);
cell.AddAction(MedicalViewerActionType.Stack);
// assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);
// adjust some properties of the cell and add some tags.
cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);
_medicalViewer.Cells.Add(cell);
// Load another image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"mr.dcm"));
MedicalViewerMultiCell cell1 = new MedicalViewerMultiCell(_image, true, 2, 2);
_medicalViewer.Cells.Add(cell1);
// add some actions that will be used to change the properties of the images inside the control.
cell1.AddAction(MedicalViewerActionType.WindowLevel);
cell1.AddAction(MedicalViewerActionType.Alpha);
cell1.AddAction(MedicalViewerActionType.Offset);
cell1.AddAction(MedicalViewerActionType.Stack);
// assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);
// adjust some properties of the cell and add some tags.
cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);
Controls.Add(_medicalViewer);
_medicalViewer.Dock = DockStyle.Fill;
}
public MedicalViewer Viewer
{
get { return _medicalViewer; }
}
}
MedicalViewerForm GetMedicalControl()
{
return new MedicalViewerForm();
}
// This example will link the active sub-cell of the first cell to the second cell and vice versa.
public void MedicalViewerActiveSubCellChangedExample()
{
MedicalViewerForm myForm = GetMedicalControl();
MedicalViewer medicalViewer = myForm.Viewer;
MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(medicalViewer.Cells[0]);
MedicalViewerMultiCell cell1 = (MedicalViewerMultiCell)(medicalViewer.Cells[1]);
cell.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(medicalViewer_ActiveSubCellChanged);
cell1.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(cell1_ActiveSubCellChanged);
myForm.ShowDialog();
}
void cell1_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
{
medicalViewer_ActiveSubCellChanged(sender, e);
}
void medicalViewer_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
{
MedicalViewerMultiCell cell = (MedicalViewerMultiCell)sender;
int index = (e.CellIndex == 1) ? 0 : 1;
MedicalViewerMultiCell theOtherCell = (MedicalViewerMultiCell)(cell.ParentViewer.Cells[index]);
MedicalViewerStack stackProperties = (MedicalViewerStack)theOtherCell.GetActionProperties(MedicalViewerActionType.Stack);
stackProperties.ActiveSubCell = e.SubCellIndex % (theOtherCell.Rows * theOtherCell.Columns);
stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell;
theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties);
stackProperties.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}