ShapeGeometry Class

Represents the geometry for a shape or connector.

Inheritance Hierarchy

System.Object
  Microsoft.VisualStudio.Modeling.Diagrams.ShapeGeometry
    Microsoft.VisualStudio.Modeling.Diagrams.LinkShapeGeometry
    Microsoft.VisualStudio.Modeling.Diagrams.NodeShapeGeometry

Namespace:  Microsoft.VisualStudio.Modeling.Diagrams
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Syntax

'Declaration
Public MustInherit Class ShapeGeometry _
    Implements IDisposable
public abstract class ShapeGeometry : IDisposable
public ref class ShapeGeometry abstract : IDisposable
[<AbstractClass>]
type ShapeGeometry =  
    class 
        interface IDisposable 
    end
public abstract class ShapeGeometry implements IDisposable

The ShapeGeometry type exposes the following members.

Constructors

  Name Description
Protected method ShapeGeometry Initializes a new instance of the ShapeGeometry class.

Top

Properties

  Name Description
Public propertyStatic member MaximumShadowOffset Gets the maximum offset allowed between a shape outline and the outer edge of its shadow.
Public property ShadowOffset Gets the offset between the shape outline and the outer edge of the shadow.
Protected property UninitializedPath Gets the path around the shape geometry.

Top

Methods

  Name Description
Protected methodStatic member CreateDiagramItem Creates a shape geometry host.
Public method Dispose() Releases all resources used by the current instance of the ShapeGeometry class.
Protected method Dispose(Boolean)
Public method DoFoldToShape Calculates the point where a connector crosses the outline of the shape geometry. It is used to compute where connectors should terminate.
Public method DoHitTest(IGeometryHost, PointD, DiagramHitTestInfo) Determines whether a point is inside a shape.
Public method DoHitTest(IGeometryHost, PointD, DiagramHitTestInfo, Boolean) Determines whether a point is inside a shape.
Public method DoHitTestSelection Determines whether a point is inside the selection highlight of a shape.
Public method DoPaint Draws the shape geometry, and its shadow if it has one.
Public method DoPaintEmphasis Draws emphasis on the shape.
Protected method DoPaintGeometry Paints the boundary and background of the shape.
Public method DoPaintResizeFeedback Draws the resize feedback for the shape geometry. Called repeatedly as the user moves the mouse to resize the shape.
Public method DoPaintSelection Draws the selection highlighting, which typically surrounds the shape boundary.
Protected method DoPaintShadow Draws the shadow for the shape.
Public method Equals Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetBackgroundBrushId Gets the ID that is assigned to the brush that paints the background of the shape geometry.
Public method GetExtraPenWidth Gets the width of the outline pen that is outside the boundary of the shape.
Public method GetHashCode Serves as the default hash function. (Inherited from Object.)
Protected methodStatic member GetHitTestTolerance Gets the tolerance around the shape geometry to use when a hit test is performed.
Public method GetOutlinePenId Gets the ID that is assigned to the brush that paints the outline of the shape geometry.
Public method GetPath(IGeometryHost) Gets the path around the shape geometry. Use the returned path before applying GetPath() to any other shape. Use GetPathCopy() if you want to retain a path.
Protected method GetPath(RectangleD) Gets the path around the shape geometry.
Public method GetPathCopy Gets a copy of the path around the shape geometry. Dispose the path when you have finished with it.
Public method GetPerimeter Gets the path of the perimeter around the shape, including the width of the pen that draws the boundary. Make a copy of this path if you want to retain it.
Protected method GetPerimeterBoundingBox Gets the bounding box around the perimeter of the shape, including the thickness of the pen that draws the boundary.
Public methodStatic member GetSelectionBorderThickness(Graphics) Gets the width of the border for a selection in the current view.
Public methodStatic member GetSelectionBorderThickness(DiagramClientView) Gets the width of the border for a selection in the specified view.
Public method GetSelectionLineOffset Gets the distance between the selection and the outside of the shape geometry.
Public method GetSelectionLineWidth Gets the width of the line that indicates that a shape is selected.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method HasFilledBackground True if this type of geometry has a filled background.
Protected method HasOutline True if this type of geometry has a visible border.
Protected method HasShadow True if this type of geometry has a shadow.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public methodStatic member Rotate Rotate an array of points around a specified center.
Public methodStatic member SnapToCircle Snaps a potential point from the bounding box around the shape geometry to the perimeter of the circle.
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Public methodStatic member Translate Moves an array of points by a specified vector.

Top

Remarks

This class and its derivatives deal with operations and calculations associated with the outline of the shape. There is a subclass for each of the major kinds of shape, such as ImageShapeGeometry, CompartmentShapeGeometry, and LinkShapeGeometry. By default, your shape or connector class is associated with one of these standard geometry classes.

To override functions of ShapeGeometry:

  • Create your own class derived from one of the standard subclasses of ShapeGeometry. Do not add state variables to this class.

  • In your shape class, override the ShapeGeometry property to return an instance of your ShapeGeometry subclass.

ShapeGeometry is a lightweight class – it has no state, so that you can share an instance between all the instances of a shape class.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

Microsoft.VisualStudio.Modeling.Diagrams Namespace