public virtual void SetAction(
MedicalViewerActionType actionType,
MedicalViewerMouseButtons mouseButton,
MedicalViewerActionFlags applyingOperation
)
actionType
The action to be assigned.
mouseButton
The Mouse event to be associated with the specified action.
applyingOperation
Indicates the cells that the action is applied to and when the action is applied.
For more information, refer to Applying Actions and Creating a Bitmap Region.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.MedicalViewer;
public void MedicalViewerPropertiesExample()
{
MainForm2 form = new MainForm2();
form.ShowDialog();
}
// MainForm1 will be the owner of the medical viewer control.
class MainForm2 : Form
{
public MedicalViewer _medicalViewer;
void MedicalViewerForm_SizeChanged(object sender, EventArgs e)
{
_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
}
public MainForm2()
{
RasterCodecs _codecs = new RasterCodecs();
RasterImage _image;
// Create the medical viewer and adjust some properties.
_medicalViewer = new MedicalViewer();
_medicalViewer.Rows = 2;
_medicalViewer.Columns = 2;
_medicalViewer.Location = new Point(0, 0);
_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
_medicalViewer.ResizeBoth = System.Windows.Forms.Cursors.SizeAll;
_medicalViewer.ResizeHorizontalCursor = System.Windows.Forms.Cursors.SizeWE;
_medicalViewer.ResizeVerticalCursor = System.Windows.Forms.Cursors.SizeNS;
_medicalViewer.SplitterColor = Color.FromArgb(128, 128, 128);
_medicalViewer.SplitterStyle = MedicalViewerSplitterStyle.Thick;
_medicalViewer.UseExtraSplitters = false;
_medicalViewer.VisibleRow = 0;
_medicalViewer.CellMaintenance = true;
_medicalViewer.CustomSplitterColor = true;
_medicalViewer.AutoScroll = true;
// 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);
cell.ActiveBorderColor = Color.FromArgb(0, 0, 255);
cell.ActiveSubCellBorderColor = Color.FromArgb(0, 255, 0);
cell.AnnotationDefaultCursor = System.Windows.Forms.Cursors.Cross;
cell.AnnotationMoveCursor = System.Windows.Forms.Cursors.SizeNWSE;
cell.AnnotationSelectCursor = System.Windows.Forms.Cursors.SizeAll;
cell.CellBackColor = Color.FromArgb(100, 100, 255);
cell.BorderStyle = MedicalViewerBorderStyle.DashDotDot;
cell.BackColor = Color.FromArgb(70, 70, 180);
cell.MeasurementUnit = MedicalViewerMeasurementUnit.Inches;
cell.NonActiveBorderColor = Color.FromArgb(0, 0, 0);
cell.PaintingMethod = MedicalViewerPaintingMethod.Normal;
cell.RegionDefaultCursor = System.Windows.Forms.Cursors.Cross;
cell.RulerInColor = Color.FromArgb(255, 255, 0);
cell.RulerOutColor = Color.FromArgb(255, 0, 0);
cell.RulerStyle = MedicalViewerRulerStyle.Bordered;
cell.ShowCellScroll = false;
cell.ShowFreezeText = true;
cell.TextColor = Color.FromArgb(255, 255, 0);
cell.TextQuality = MedicalViewerTextQuality.Draft;
cell.TextShadowColor = Color.FromArgb(0, 0, 0);
cell.OverlayTextSize = 0;
cell.RegionBorderColor1 = Color.FromArgb(0, 0, 255);
cell.RegionBorderColor2 = Color.FromArgb(255, 255, 255);
cell.InteractiveInterpolation = true;
// 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.Scale);
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.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.Scale, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
// assign the added actions to a keyboard keys that will work like the mouse.
MedicalViewerKeys medicalKeys = new MedicalViewerKeys();
medicalKeys.MouseDown = Keys.Down;
medicalKeys.MouseUp = Keys.Up;
medicalKeys.MouseLeft = Keys.Left;
medicalKeys.MouseRight = Keys.Right;
cell.SetActionKeys(MedicalViewerActionType.Offset, medicalKeys);
medicalKeys.Modifiers = MedicalViewerModifiers.Ctrl;
cell.SetActionKeys(MedicalViewerActionType.WindowLevel, medicalKeys);
medicalKeys.MouseDown = Keys.PageDown;
medicalKeys.MouseUp = Keys.PageUp;
cell.SetActionKeys(MedicalViewerActionType.Stack, medicalKeys);
medicalKeys.MouseDown = Keys.Subtract;
medicalKeys.MouseUp = Keys.Add;
cell.SetActionKeys(MedicalViewerActionType.Scale, medicalKeys);
// Go through all the built in actions and remove the actions that have not been assigned to a mouse button, or a key.
int index = 1;
for (; index < 22; index++)
{
MedicalViewerActionType actionType = (MedicalViewerActionType)index;
if (cell.IsActionAdded(actionType))
{
MedicalViewerMouseButtons mouseButton = cell.GetActionButton(actionType);
if (mouseButton == MedicalViewerMouseButtons.None)
{
MedicalViewerKeys keys = cell.GetActionKeys(actionType);
if (keys.MouseLeft == Keys.None && keys.MouseUp == Keys.None && keys.MouseDown == Keys.None && keys.MouseRight == Keys.None)
cell.RemoveAction(actionType);
}
}
}
// Makes the window level applies the effect on all selected cells at the same time.
MedicalViewerActionFlags flags = cell.GetActionFlags(MedicalViewerActionType.WindowLevel);
flags |= MedicalViewerActionFlags.Selected;
cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, flags);
// Load an image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "image2.cmp"));
_medicalViewer.Cells.Add(cell);
// 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);
cell.SetTag(1, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "Good, Guy");
cell.SetTag(2, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "PID 125-98-445");
cell.SetTag(3, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "DOB 08/02/1929");
cell.SetTag(5, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "03/16/1999");
cell.SetTag(0, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.RulerUnit);
cell.Rows = 2;
cell.Columns = 2;
cell.Frozen = false;
cell.DisplayRulers = MedicalViewerRulers.Both;
cell.ApplyOnIndividualSubCell = false;
cell.ApplyActionOnMove = true;
cell.FitImageToCell = true;
cell.Selected = true;
cell.ShowTags = true;
// Load an image and then add it to the control.
_image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "image2.cmp"));
MedicalViewerMultiCell cell1 = new MedicalViewerMultiCell();
cell1.Image = _image;
cell1.Rows = 2;
cell1.Columns = 2;
cell1.Frozen = false;
cell1.DisplayRulers = MedicalViewerRulers.Both;
cell1.ApplyOnIndividualSubCell = false;
cell1.ApplyActionOnMove = true;
cell1.FitImageToCell = true;
cell1.Selected = true;
cell1.ShowTags = true;
_medicalViewer.Cells.Add(cell1);
cell1.CellBackColor = Color.FromArgb(100, 100, 255);
cell1.BorderStyle = MedicalViewerBorderStyle.DashDotDot;
cell1.BackColor = Color.FromArgb(70, 70, 180);
cell1.MeasurementUnit = MedicalViewerMeasurementUnit.Inches;
cell1.NonActiveBorderColor = Color.FromArgb(0, 0, 0);
cell1.PaintingMethod = MedicalViewerPaintingMethod.Normal;
cell1.RegionDefaultCursor = System.Windows.Forms.Cursors.Cross;
cell1.RulerInColor = Color.FromArgb(255, 255, 0);
cell1.RulerOutColor = Color.FromArgb(255, 0, 0);
cell1.RulerStyle = MedicalViewerRulerStyle.Bordered;
cell1.ShowCellScroll = false;
cell1.ShowFreezeText = true;
cell1.TextColor = Color.FromArgb(255, 255, 0);
cell1.TextQuality = MedicalViewerTextQuality.Draft;
cell1.TextShadowColor = Color.FromArgb(0, 0, 0);
cell1.OverlayTextSize = 0;
cell1.RegionBorderColor1 = Color.FromArgb(0, 0, 255);
cell1.RegionBorderColor2 = Color.FromArgb(255, 255, 255);
cell1.InteractiveInterpolation = true;
// 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.Scale);
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.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.Scale, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
// assign the added actions to a keyboard keys that will work like the mouse.
medicalKeys = new MedicalViewerKeys();
medicalKeys.MouseDown = Keys.Down;
medicalKeys.MouseUp = Keys.Up;
medicalKeys.MouseLeft = Keys.Left;
medicalKeys.MouseRight = Keys.Right;
cell1.SetActionKeys(MedicalViewerActionType.Offset, medicalKeys);
medicalKeys.Modifiers = MedicalViewerModifiers.Ctrl;
cell1.SetActionKeys(MedicalViewerActionType.WindowLevel, medicalKeys);
medicalKeys.MouseDown = Keys.PageDown;
medicalKeys.MouseUp = Keys.PageUp;
cell1.SetActionKeys(MedicalViewerActionType.Stack, medicalKeys);
medicalKeys.MouseDown = Keys.Subtract;
medicalKeys.MouseUp = Keys.Add;
cell1.SetActionKeys(MedicalViewerActionType.Scale, medicalKeys);
// adjust some properties to the cell1 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);
cell1.SetTag(1, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "Good, Guy");
cell1.SetTag(2, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "PID 125-98-445");
cell1.SetTag(3, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "DOB 08/02/1929");
cell1.SetTag(5, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "03/16/1999");
cell1.SetTag(0, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.RulerUnit);
Controls.Add(_medicalViewer);
_medicalViewer.Dock = DockStyle.Fill;
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}