Provides access to methods for working with the snapping window.
Product Availability
When To Use
Use the ISnappingWindow interface after programmatically changing the snapping environment to refresh the contents of the Snapping Window. You can also programmatically close or open the snapping window using the Hide and Show methods.
Members
Description | ||
---|---|---|
Hide | Hides the window. | |
RefreshContents | Refreshes the contents. | |
Show | Shows the window. |
Remarks
The snapping window reveals all of the snap agents registered in the snap agent component category. Custom snap agents appear in the bottom half of the snapping window.
The first time the snapping window is opened, a feature snap agent is created for each editable featureclass. Each feature snap agent initially has its HitType property set to esriGeometryPartNone. Change the HitType by checking the appropriate box in the snapping window or programmatically change it using IFeatureSnapAgent::HitType.
Snap agents other than feature snap agents, Snap Perpendicular for example, are not instantiated the first time the snapping window is opened. Instead, these snap agents are created only when they are checked off in the snapping window or instantiated programmatically.
Call RefreshContents to update the snapping window with any programmatic changes made to the snapping environment.
To get a handle to the snapping window use IEditor::FindExtension.
The following example shows a stand-alone subroutine that clears all the snap agents in C#.
public void ClearSnap()
{
//You can get app from ICommand :: OnCreate() hook parameter
UID editorUid = new UIDClass();
editorUid.Value = "esriEditor.Editor";
IEditor editor = app.FindExtensionByCLSID(editorUid) as IEditor;
ISnapEnvironment snapEnv = editor as ISnapEnvironment;
//Clear all of the loaded snap agents
snapEnv.ClearSnapAgents();
UID extUid = new UIDClass();
extUid.Value = "esriEditor.SnappingWindow";
//Get a handle to the snapping window from the editor
ISnappingWindow snapWindow = editor.FindExtension(extUid) as ISnappingWindow;
snapWindow.RefreshContents();
}
The following example shows a stand-alone subroutine that clears all the snap agents in VBNet.
Public Sub ClearSnap()
'You can get app from ICommand :: OnCreate()
hook parameter
Dim editorUid As UID = New UIDClass()
editorUid.Value = "esriEditor.Editor"
Dim editor As IEditor =
TryCast(app.FindExtensionByCLSID(editorUid), IEditor)
Dim snapEnv As ISnapEnvironment =
TryCast(editor, ISnapEnvironment)
'Clear all of the loaded snap agents
snapEnv.ClearSnapAgents()
Dim extUid As UID = New UIDClass()
extUid.Value = "esriEditor.SnappingWindow"
'Get a handle to the snapping window from the
editor
Dim snapWindow As ISnappingWindow =
TryCast(editor.FindExtension(extUid), ISnappingWindow)
snapWindow.RefreshContents()
End Sub