/// <summary> /// Units of measure is changed. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="PropertyChangedEventArgs{UnitOfMeasure}"/> instance containing the event data.</param> private void Tool_UnitsOfMeasureChanged(object sender, PropertyChangedEventArgs <UnitOfMeasure> e) { ImageMeasureTool tool = (ImageMeasureTool)VisualTool; ImageMeasureToolUnitsOfMeasureAction unitOfMeasureAction = _unitOfMeasureToUnitOfMeasureAction[tool.UnitsOfMeasure]; unitOfMeasureAction.Activate(); // get the unit of measure as a string string unitOfMeasureString = GetUnitOfMeasureString(e.NewValue); // if image viewer is not empty if (tool.ImageViewer != null) { // for each image foreach (VintasoftImage image in tool.ImageViewer.Images) { // get annotation list IList <AnnotationView> annotations = tool.GetAnnotationsFromImage(image); // for each annotation foreach (AnnotationView annotation in annotations) { MeasurementAnnotationData data = annotation.Data as MeasurementAnnotationData; // if annotation is measurement annotation if (data != null) { // set new measuring text template data.MeasuringTextTemplate = GetMeasuringTextTemplate(data, unitOfMeasureString); } } } } }
/// <summary> /// Adds the properties actions to the specified action list. /// </summary> /// <param name="actions">The actions list.</param> private void AddPropertiesActions(List <VisualToolAction> actions) { List <ImageMeasureToolUnitsOfMeasureAction> unitsOfMeasureSubActions = new List <ImageMeasureToolUnitsOfMeasureAction>(); ImageMeasureTool tool = (ImageMeasureTool)VisualTool; foreach (UnitOfMeasure unitOfMeasure in Enum.GetValues(typeof(UnitOfMeasure))) { ImageMeasureToolUnitsOfMeasureAction unitsOfMeasureAction = new ImageMeasureToolUnitsOfMeasureAction( unitOfMeasure, string.Format("{0}", unitOfMeasure), string.Format("{0} ({1})", unitOfMeasure, GetUnitOfMeasureString(unitOfMeasure)), null); unitsOfMeasureAction.Activated += new EventHandler(unitOfMeasureAction_Activated); if (unitOfMeasure == tool.UnitsOfMeasure) { unitsOfMeasureAction.Activate(); } if (_unitOfMeasureToUnitOfMeasureAction == null) { _unitOfMeasureToUnitOfMeasureAction = new Dictionary <UnitOfMeasure, ImageMeasureToolUnitsOfMeasureAction>(); } _unitOfMeasureToUnitOfMeasureAction.Add(unitOfMeasure, unitsOfMeasureAction); unitsOfMeasureSubActions.Add(unitsOfMeasureAction); } actions.Add(new VisualToolAction("Units Of Measure", "Units Of Measure", null, false, unitsOfMeasureSubActions.ToArray())); VisualToolAction propertiesAction = new VisualToolAction("Properties...", "Show properties form for image measure tool", null, false); propertiesAction.Clicked += new EventHandler(propertiesAction_Clicked); actions.Add(propertiesAction); VisualToolAction measurementPropertiesAction = new VisualToolAction("Measurement Properties...", "Show properties form for focused measurement annotation", null, false); measurementPropertiesAction.Clicked += new EventHandler(measurementPropertiesAction_Clicked); actions.Add(measurementPropertiesAction); }
/// <summary> /// The "unit of measure" action is activated. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> private void unitOfMeasureAction_Activated(object sender, EventArgs e) { ImageMeasureToolUnitsOfMeasureAction unitsOfMeasureAction = (ImageMeasureToolUnitsOfMeasureAction)sender; ImageMeasureTool tool = (ImageMeasureTool)VisualTool; tool.UnitsOfMeasure = unitsOfMeasureAction.UnitsOfMeasure; if (_currentUnitOfMeasureAction != null) { _currentUnitOfMeasureAction.Deactivate(); } _currentUnitOfMeasureAction = unitsOfMeasureAction; }