The CanGroup Property is available in LEADTOOLS Document and Medical Imaging toolkits.
Gets a value indicating whether this AnnAutomation is in a state where objects can be grouped together.Visual Basic (Declaration) | |
---|---|
Public Overridable ReadOnly Property CanGroup As Boolean |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As AnnAutomation Dim value As Boolean value = instance.CanGroup |
C# | |
---|---|
public virtual bool CanGroup {get;} |
Property Value
true if this AnnAutomation is in a state where objects can be grouped together; false otherwise.This example will add two objects into the automation and then group them together.
Visual Basic | Copy Code |
---|---|
Public Sub AnnAutomation_CanGroup(ByVal automation As AnnAutomation) ShowStatus(automation) ' first, add two objects to the automation Dim rectObj As AnnRectangleObject = New AnnRectangleObject() rectObj.Bounds = New AnnRectangle(100, 100, 100, 100, AnnUnit.Pixel) rectObj.Pen = New AnnPen(Color.Blue, New AnnLength(1, AnnUnit.Pixel)) rectObj.Brush = Nothing automation.Container.Objects.Add(rectObj) automation.Viewer.Invalidate(rectObj.InvalidRectangle) ShowStatus(automation) Dim lineObj As AnnLineObject = New AnnLineObject() lineObj.StartPoint = New AnnPoint(100, 100, AnnUnit.Pixel) lineObj.EndPoint = New AnnPoint(200, 200, AnnUnit.Pixel) lineObj.Pen = New AnnPen(Color.Red, New AnnLength(1, AnnUnit.Pixel)) automation.Container.Objects.Add(lineObj) automation.Viewer.Invalidate(lineObj.InvalidRectangle) ShowStatus(automation) ' "select" both objects automation.StartEditing(rectObj, False) ShowStatus(automation) automation.StartEditing(lineObj, True) ShowStatus(automation) ' make this group object a true group If automation.CanGroup Then automation.Group() ShowStatus(automation) End If ' ungroup to again to the origina 2 objects If automation.CanUngroup Then automation.Ungroup() ShowStatus(automation) End If End Sub Private Sub ShowStatus(ByVal automation As AnnAutomation) Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder() sb.Append("Number of objects: ") sb.Append(automation.Container.Objects.Count) sb.Append(Environment.NewLine) sb.Append("Object currently being edited: ") If Not automation.CurrentEditObject Is Nothing Then sb.Append(automation.CurrentEditObject.GetType().Name) If TypeOf automation.CurrentEditObject Is AnnGroupObject Then sb.Append(", Temporary: ") Dim group As AnnGroupObject = CType(IIf(TypeOf automation.CurrentEditObject Is AnnGroupObject, automation.CurrentEditObject, Nothing), AnnGroupObject) sb.Append(group.Temporary) End If Else sb.Append("None") End If sb.Append(Environment.NewLine) sb.Append("CanGroup: ") sb.Append(automation.CanGroup) sb.Append(", CanUngroup: ") sb.Append(automation.CanUngroup) MessageBox.Show(sb.ToString()) End Sub |
C# | Copy Code |
---|---|
public void AnnAutomation_CanGroup(AnnAutomation automation) { ShowStatus(automation); // first, add two objects to the automation AnnRectangleObject rectObj = new AnnRectangleObject(); rectObj.Bounds = new AnnRectangle(100, 100, 100, 100, AnnUnit.Pixel); rectObj.Pen = new AnnPen(Color.Blue, new AnnLength(1, AnnUnit.Pixel)); rectObj.Brush = null; automation.Container.Objects.Add(rectObj); automation.Viewer.Invalidate(rectObj.InvalidRectangle); ShowStatus(automation); AnnLineObject lineObj = new AnnLineObject(); lineObj.StartPoint = new AnnPoint(100, 100, AnnUnit.Pixel); lineObj.EndPoint = new AnnPoint(200, 200, AnnUnit.Pixel); lineObj.Pen = new AnnPen(Color.Red, new AnnLength(1, AnnUnit.Pixel)); automation.Container.Objects.Add(lineObj); automation.Viewer.Invalidate(lineObj.InvalidRectangle); ShowStatus(automation); // "select" both objects automation.StartEditing(rectObj, false); ShowStatus(automation); automation.StartEditing(lineObj, true); ShowStatus(automation); // make this group object a true group if(automation.CanGroup) { automation.Group(); ShowStatus(automation); } // ungroup to again to the origina 2 objects if(automation.CanUngroup) { automation.Ungroup(); ShowStatus(automation); } } private void ShowStatus(AnnAutomation automation) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("Number of objects: "); sb.Append(automation.Container.Objects.Count); sb.Append(Environment.NewLine); sb.Append("Object currently being edited: "); if(automation.CurrentEditObject != null) { sb.Append(automation.CurrentEditObject.GetType().Name); if(automation.CurrentEditObject is AnnGroupObject) { sb.Append(", Temporary: "); AnnGroupObject group = automation.CurrentEditObject as AnnGroupObject; sb.Append(group.Temporary); } } else sb.Append("None"); sb.Append(Environment.NewLine); sb.Append("CanGroup: "); sb.Append(automation.CanGroup); sb.Append(", CanUngroup: "); sb.Append(automation.CanUngroup); MessageBox.Show(sb.ToString()); } |
(Read only) The AnnAutomation is in a state where objects can be grouped together when 2 or more objects are in an edit state.
Call the Group method to group the objects currently being edited together.
Note, when you select one or more objects in this AnnAutomation through the user interface, an AnnGroupObject will be created and the selected objects are moved from the Container to this AnnGroupObject. This AnnGroupObject is a temporary group and will be ungrouped (by calling AnnGroupObject.Ungroup) and added back to the Container when the objects are not selected anymore (for example, by clicking somewhere in the container outside the group or by calling the user interface or by calling SelectNone). To check if the current editing object is the temporary group, first check if the CurrentEditObject is an AnnGroupObject, then check if the AnnGroupObject.Temporary value is set to true.
For more information about grouping and ungrouping, refer to Grouping and Ungrouping Annotation Objects.
Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7