Behavior Class
Represents the Behavior objects that are managed by a BehaviorService.
Assembly: System.Design (in System.Design.dll)
| Name | Description | |
|---|---|---|
![]() | Behavior() | Initializes a new instance of the Behavior class. |
![]() | Behavior(Boolean, BehaviorService^) | Initializes a new instance of the Behavior class with the given BehaviorService. |
| Name | Description | |
|---|---|---|
![]() | Cursor | Gets the cursor that should be displayed for this behavior. |
![]() | DisableAllCommands | Gets a value indicating whether MenuCommand objects should be disabled. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | FindCommand(CommandID^) | Intercepts commands. |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | OnDragDrop(Glyph^, DragEventArgs^) | Permits custom drag-and-drop behavior. |
![]() | OnDragEnter(Glyph^, DragEventArgs^) | Permits custom drag-enter behavior. |
![]() | OnDragLeave(Glyph^, EventArgs^) | Permits custom drag-leave behavior. |
![]() | OnDragOver(Glyph^, DragEventArgs^) | Permits custom drag-over behavior. |
![]() | OnGiveFeedback(Glyph^, GiveFeedbackEventArgs^) | Permits custom drag-and-drop feedback behavior. |
![]() | OnLoseCapture(Glyph^, EventArgs^) | Called by the adorner window when it loses mouse capture. |
![]() | OnMouseDoubleClick(Glyph^, MouseButtons, Point) | Called when any double-click message enters the adorner window of the BehaviorService. |
![]() | OnMouseDown(Glyph^, MouseButtons, Point) | Called when any mouse-down message enters the adorner window of the BehaviorService. |
![]() | OnMouseEnter(Glyph^) | Called when any mouse-enter message enters the adorner window of the BehaviorService. |
![]() | OnMouseHover(Glyph^, Point) | Called when any mouse-hover message enters the adorner window of the BehaviorService. |
![]() | OnMouseLeave(Glyph^) | Called when any mouse-leave message enters the adorner window of the BehaviorService. |
![]() | OnMouseMove(Glyph^, MouseButtons, Point) | Called when any mouse-move message enters the adorner window of the BehaviorService. |
![]() | OnMouseUp(Glyph^, MouseButtons) | Called when any mouse-up message enters the adorner window of the BehaviorService. |
![]() | OnQueryContinueDrag(Glyph^, QueryContinueDragEventArgs^) | Sends this drag-and-drop event from the adorner window to the appropriate Behavior or hit-tested Glyph. |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
This class can be extended to develop any type of user interface behavior, including selection, drag, and resize behaviors.
For more information, see Behavior Service Overview.
Note |
|---|
Your Behavior type must be associated with a Glyph type. Glyph-independent behaviors are not supported. |
The following code example demonstrates how to create your own class based on the Behavior class that responds to user clicks. This code example is part of a larger example provided for the BehaviorService class.
// By providing our own behavior we can do something // interesting when the user clicks or manipulates our glyph. public ref class DemoBehavior : public Behavior { public: bool OnMouseUp(Glyph^ g, MouseButtons^ button) { MessageBox::Show("Hey, you clicked the mouse here"); // indicating we processed this event. return true; } }; public ref class DemoGlyph : public Glyph { Control^ control; BehaviorService^ behavior; public: DemoGlyph(BehaviorService^ behavior, Control^ control): Glyph(gcnew BehaviorServiceSample::DemoBehavior) { this->behavior = behavior; this->control = control; } public: virtual property Rectangle Bounds { Rectangle get() override { // Create a glyph that is 10x10 and sitting // in the middle of the control. Glyph coordinates // are in adorner window coordinates, so we must map // using the behavior service. Point edge = behavior->ControlToAdornerWindow(control); Size size = control->Size; Point center = Point(edge.X + (size.Width / 2), edge.Y + (size.Height / 2)); Rectangle bounds = Rectangle(center.X - 5, center.Y - 5, 10, 10); return bounds; } } public: virtual Cursor^ GetHitTest(Point p) override { // GetHitTest is called to see if the point is // within this glyph. This gives us a chance to decide // what cursor to show. Returning null from here means // the mouse pointer is not currently inside of the // glyph. Returning a valid cursor here indicates the // pointer is inside the glyph, and also enables our // Behavior property as the active behavior. if (Bounds.Contains(p)) { return Cursors::Hand; } return nullptr; } public: virtual void Paint(PaintEventArgs^ pe) override { // Draw our glyph. Our's is simple: a blue ellipse. pe->Graphics->FillEllipse(Brushes::Blue, Bounds); } };
Available since 2.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.



