Behavior Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Behavior Reprezentuje obiekty zarządzane przez obiekt BehaviorService.
public ref class Behavior abstract
public abstract class Behavior
type Behavior = class
Public MustInherit Class Behavior
- Dziedziczenie
-
Behavior
Przykłady
W poniższym przykładzie kodu pokazano, jak utworzyć własną klasę na Behavior podstawie klasy, która odpowiada na kliknięcia użytkownika. Ten przykład kodu jest częścią większego przykładu podanego BehaviorService dla klasy.
// 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);
}
};
class MyGlyph : Glyph
{
Control control;
BehaviorService behaviorSvc;
public MyGlyph(BehaviorService behaviorSvc, Control control) :
base(new MyBehavior())
{
this.behaviorSvc = behaviorSvc;
this.control = control;
}
public override Rectangle Bounds
{
get
{
// 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 = behaviorSvc.ControlToAdornerWindow(control);
Size size = control.Size;
Point center = new Point(edge.X + (size.Width / 2),
edge.Y + (size.Height / 2));
Rectangle bounds = new Rectangle(
center.X - 5,
center.Y - 5,
10,
10);
return bounds;
}
}
public override Cursor GetHitTest(Point p)
{
// 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 null;
}
public override void Paint(PaintEventArgs pe)
{
// Draw our glyph. It is simply a blue ellipse.
pe.Graphics.FillEllipse(Brushes.Blue, Bounds);
}
// By providing our own behavior we can do something interesting
// when the user clicks or manipulates our glyph.
class MyBehavior : Behavior
{
public override bool OnMouseUp(Glyph g, MouseButtons button)
{
MessageBox.Show("Hey, you clicked the mouse here");
return true; // indicating we processed this event.
}
}
}
Class MyGlyph
Inherits Glyph
Private control As Control
Private behaviorSvc As _
System.Windows.Forms.Design.Behavior.BehaviorService
Public Sub New(ByVal behaviorSvc As _
System.Windows.Forms.Design.Behavior.BehaviorService, _
ByVal control As Control)
MyBase.New(New MyBehavior())
Me.behaviorSvc = behaviorSvc
Me.control = control
End Sub
Public Overrides ReadOnly Property Bounds() As Rectangle
Get
' 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.
Dim edge As Point = behaviorSvc.ControlToAdornerWindow(control)
Dim size As Size = control.Size
Dim center As New Point(edge.X + size.Width / 2, edge.Y + _
size.Height / 2)
Dim bounds1 As New Rectangle(center.X - 5, center.Y - 5, 10, 10)
Return bounds1
End Get
End Property
Public Overrides Function GetHitTest(ByVal p As Point) As Cursor
' 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) Then
Return Cursors.Hand
End If
Return Nothing
End Function
Public Overrides Sub Paint(ByVal pe As PaintEventArgs)
' Draw our glyph. It is simply a blue ellipse.
pe.Graphics.FillEllipse(Brushes.Blue, Bounds)
End Sub
' By providing our own behavior we can do something interesting
' when the user clicks or manipulates our glyph.
Class MyBehavior
Inherits System.Windows.Forms.Design.Behavior.Behavior
Public Overrides Function OnMouseUp(ByVal g As Glyph, _
ByVal button As MouseButtons) As Boolean
MessageBox.Show("Hey, you clicked the mouse here")
Return True
' indicating we processed this event.
End Function 'OnMouseUp
End Class
End Class
Uwagi
Tę klasę można rozszerzyć w celu opracowania dowolnego typu zachowania interfejsu użytkownika, w tym wyboru, przeciągania i zmieniania rozmiaru.
Aby uzyskać więcej informacji, zobacz Omówienie usługi zachowania.
Uwaga
Typ Behavior musi być skojarzony z typem Glyph . Zachowania niezależne od Glyph nie są obsługiwane.
Konstruktory
Behavior() |
Inicjuje nowe wystąpienie klasy Behavior. |
Behavior(Boolean, BehaviorService) |
Inicjuje Behavior nowe wystąpienie klasy przy użyciu danego BehaviorServiceelementu . |
Właściwości
Cursor |
Pobiera kursor, który powinien być wyświetlany dla tego zachowania. |
DisableAllCommands |
Pobiera wartość wskazującą, czy MenuCommand obiekty powinny być wyłączone. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
FindCommand(CommandID) |
Przechwytuje polecenia. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnDragDrop(Glyph, DragEventArgs) |
Zezwala na niestandardowe zachowanie przeciągania i upuszczania. |
OnDragEnter(Glyph, DragEventArgs) |
Zezwala na niestandardowe zachowanie przeciągania. |
OnDragLeave(Glyph, EventArgs) |
Zezwala na niestandardowe zachowanie przeciągania. |
OnDragOver(Glyph, DragEventArgs) |
Zezwala na niestandardowe zachowanie przeciągania. |
OnGiveFeedback(Glyph, GiveFeedbackEventArgs) |
Zezwala na niestandardowe zachowanie przesyłania zwrotnego przeciągania i upuszczania. |
OnLoseCapture(Glyph, EventArgs) |
Wywoływane przez okno adornera, gdy traci przechwytywanie myszy. |
OnMouseDoubleClick(Glyph, MouseButtons, Point) |
Wywoływane, gdy dowolny komunikat dwukrotnie kliknie okno adoratora .BehaviorService |
OnMouseDown(Glyph, MouseButtons, Point) |
Wywoływana, gdy dowolny komunikat myszy w dół wprowadza okno modułu adoratora .BehaviorService |
OnMouseEnter(Glyph) |
Wywoływana, gdy dowolny komunikat wprowadzony myszą wprowadza okno adoratora elementu BehaviorService. |
OnMouseHover(Glyph, Point) |
Wywoływana, gdy dowolny komunikat myszy wprowadza okno adoratora elementu BehaviorService. |
OnMouseLeave(Glyph) |
Wywoływana, gdy dowolny komunikat z pustą myszą wprowadza okno adoratora elementu BehaviorService. |
OnMouseMove(Glyph, MouseButtons, Point) |
Wywoływana, gdy dowolny komunikat przenoszenia myszy wprowadza okno modułu adoratora .BehaviorService |
OnMouseUp(Glyph, MouseButtons) |
Wywoływane, gdy dowolny komunikat myszy wchodzi w okno adoratora .BehaviorService |
OnQueryContinueDrag(Glyph, QueryContinueDragEventArgs) |
Wysyła to zdarzenie przeciągania i upuszczania z okna modułu adoratora do odpowiedniego Behavior lub przetestowanego trafienia Glyph. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |