Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The GUID used to identify the AbsoluteBounds domain property.
Namespace: Microsoft.VisualStudio.Modeling.Diagrams
Assembly: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.10.0 (in Microsoft.VisualStudio.Modeling.Sdk.Diagrams.10.0.dll)
Syntax
'Declaration
Public Shared ReadOnly AbsoluteBoundsDomainPropertyId As Guid
public static readonly Guid AbsoluteBoundsDomainPropertyId
public:
static initonly Guid AbsoluteBoundsDomainPropertyId
static val AbsoluteBoundsDomainPropertyId: Guid
public static final var AbsoluteBoundsDomainPropertyId : Guid
Remarks
Use this in a ChangeRule to respond to changes in the absolute bounds. A Change Rule is performed inside the transaction that triggered the rule, usually just before the end of the transaction.
Examples
// This rule responds to changes in location and size of MyShape,
// which is declared in DSL Definition.
[RuleOn(typeof(MyShape))]
public sealed class MyShapeMoveRule : ChangeRule
{
public override void ElementPropertyChanged(ElementPropertyChangedEventArgs e)
{
MyShape shape = e.ModelElement as MyShape;
if (shape == null) return;
if (shape.Store.InSerializationTransaction) return;
if (!shape.IsNestedChild) return;
if (e.DomainProperty.Id == NodeShape.AbsoluteBoundsDomainPropertyId)
{
shape.ParentShape.NestedChildShapes.Move(shape,
shape.ParentShape.NestedChildShapes.Count - 1);
// this.Diagram.NeedsRenumber should be set after
// re-ordering the child shapes. It should also be
// set after the user invokes Undo or Redo; but
// the rule is not called in Undo or Redo.
// So instead, we will put the NeedsRenumber call
// in an override of OnAbsoluteBoundsChanged, which
// is always called.
}
}
}
// Register the rule.
partial class InstanceDiagramsDomainModel
{
protected override Type[] GetCustomDomainModelTypes()
{
List<Type> types = new List<Type>(base.GetCustomDomainModelTypes());
types.Add(typeof(MyShapeMoveRule));
return types.ToArray();
}
}
partial class MyShape // Declared in DSL Definition
{
// Called even in Undo or Redo.
public override void OnAbsoluteBoundsChanged(AbsoluteBoundsChangedEventArgs e)
{
base.OnAbsoluteBoundsChanged(e);
this.Diagram.NeedsRenumber = true;
}
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
See Also
Reference
Microsoft.VisualStudio.Modeling.Diagrams Namespace