wpf-devexpress-dot-xpf-dot-diagram-dot-diagramcontrol-e8b5acaf.md
Occurs before a diagram item is added to the canvas.
Namespace : DevExpress.Xpf.Diagram
Assembly : DevExpress.Xpf.Diagram.v25.2.dll
NuGet Package : DevExpress.Wpf.Diagram
public event EventHandler<DiagramItemCreatingEventArgs> ItemCreating
Public Event ItemCreating As EventHandler(Of DiagramItemCreatingEventArgs)
The ItemCreating event's data class is DiagramItemCreatingEventArgs. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| Handled | Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route. Inherited from RoutedEventArgs. |
| Item | Gets or sets the item that is about to be created. |
| ItemType | Gets the type of the item that is about to be created. |
| ItemUsage | Indicates whether the item is a part of the diagram or toolbox preview. |
| OriginalSource | Gets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class. Inherited from RoutedEventArgs. |
| RoutedEvent | Gets or sets the RoutedEvent associated with this RoutedEventArgs instance. Inherited from RoutedEventArgs. |
| Source | Gets or sets a reference to the object that raised the event. Inherited from RoutedEventArgs. |
The event data class exposes the following methods:
| Method | Description |
|---|---|
| InvokeEventHandler(Delegate, Object) | When overridden in a derived class, provides a way to invoke event handlers in a type-specific way, which can increase efficiency over the base implementation. Inherited from RoutedEventArgs. |
| OnSetSource(Object) | When overridden in a derived class, provides a notification callback entry point whenever the value of the Source property of an instance changes. Inherited from RoutedEventArgs. |
The following code snippet illustrates how to use the event to substitute regular shapes with custom DiagramShapeEx shapes.
private void DiagramControl1_ItemCreating(object sender, DiagramItemCreatingEventArgs e) {
if (e.ItemType == typeof(DiagramShape)) {
e.Item = new DiagramShapeEx();
}
}
Private Sub DiagramControl1_ItemCreating(ByVal sender As Object, ByVal e As DiagramItemCreatingEventArgs)
If e.ItemType Is GetType(DiagramShape) Then
e.Item = New DiagramShapeEx()
End If
End Sub
Register custom item types at the application start using the DevExpress.Diagram.Core.DiagramItemTypeRegistrator.Register method to enable their deserialization.
DiagramControl.ItemTypeRegistrator.Register(typeof(DiagramShapeEx));
DiagramControl.ItemTypeRegistrator.Register(GetType(DiagramShapeEx))
See Also