IconVectorPreviewControl
FlexControlDrawablePanelContainerControlBindableWidgetWidgetA control for previewing IIcons.
Constructors
Properties
Implements: AllowPan
AllowScrollGesture
Gets or sets whether this control captures two-finger trackpad scroll and mouse-wheel events via its ScrollGesture. Set to false for FlexControls hosted in a Scrollable so the parent receives the scroll natively (native direction, momentum, rubber-band).
Implements: AllowZoom
AutoWindowSelect
Gets or sets whether a window selection automatically starts if a primary mousedown goes unhandled.
Implements: Border
ContentBounds
public RectangleF ContentBounds { get; set; }
Gets or sets the bounding box of the content. Use an empty rectangle to indicate boundless content.
Implements: ContentBounds
ContentToControl
public IMatrix ContentToControl { get; }
Gets the transformation matrix from content coordinates to control coordinates.
Implements: ContentToControl
ControlToContent
public IMatrix ControlToContent { get; }
Gets the transformation matrix from control coordinates to content coordinates.
Implements: ControlToContent
CurrentWindowSelection
Gets the current window selection. This field will only be non-null during a window selection process. If you wish to respond to a completes window selection, handle the WindowSelection event.
DrawContentBoundary
Gets or sets whether the content boundary ought to be drawn when visible.
Implements: DrawContentBoundary
DrawScrollbars
Gets whether this control should display scrollbars when needed. Scrollbars will only be displayed when the content exceeds the inner bounds. If AllowPan is set to False, then scrollbars will never be shown.
Implements: DrawScrollbars
FloatingButtonRail
protected virtual RectangleF FloatingButtonRail { get; }
Gets the rail along which floating buttons are positioned. By default, the rail is equal to the inner bounds offset by the button size. Override this property to define a custom rail, for example if some regions near the control boundary need to remain free of buttons.
FloatingButtons
Gets the floating button collection for this control.
Implements: FloatingButtons
FocusObject
Gets the object which currently has focus, if any. Focused objects are most likely either IInteractions or IResponsives.
Implements: FocusObject
InnerBounds
public RectangleF InnerBounds { get; }
Gets the area in control coordinates for the content of the control. This area does not include the control border.
Implements: InnerBounds
InnerScreenBounds
public RectangleF InnerScreenBounds { get; }
Gets the inner bounds of this control in screen coordinates.
Implements: InnerScreenBounds
IntegerOrigin
Gets or sets whether this control only allows integer accuracy coordinates for the origin point.
Implements: IntegerOrigin
IsDragSource
Gets or sets whether this control is potentially a source for drag+drop operations.
Implements: IsDragSource
IsDropTarget
Gets or sets whether this control is potentially a target for drag+drop operations.
Implements: IsDropTarget
Implements: MaximumZoom
Implements: MinimumZoom
MouseDwellDelay
Gets or sets the duration required before a FlexControl.MouseDwell event is raised. Negative or zero length durations mean the FlexControl.MouseDwell event is never raised.
OuterBounds
public RectangleF OuterBounds { get; }
Gets the bounds of this control in container coordinates.
Implements: OuterBounds
Implements: ParentControl
Implements: Projection
ResizeBehaviour
Gets or sets the projection behaviour of the content during control resizing events.
Implements: ResizeBehaviour
ResponsivesBackwards
Enumerate over all registered responsive objects in reverse order.
ResponsivesForwards
Enumerate over all registered responsive objects.
Implements: ResponsivesForwards
ScreenBounds
public RectangleF ScreenBounds { get; }
Gets the bounds of this control in screen coordinates.
Implements: ScreenBounds
VisibleFrame
public RectangleF VisibleFrame { get; }
Gets the rectangle in content coordinates which represents the visible portion. This basically means the InnerBounds mapped into content coordinates.
Implements: VisibleFrame
ZoomFeedbackLocation
Gets or sets the location for zoom change feedback.
Implements: ZoomFeedbackLocation
Methods
Parameters:
| sparkle (ISparkle) | Sparkle to add. |
Animate<T>
Evaluate an animator. This method automatically schedules redraw events if those are needed for smooth animations.
AnimatedZoomFactor
Gets the normalised factor (0.0, 1.0) which indicates to what extend the display is in the given state.
Parameters:
| threshold (ZoomThreshold) | Threshold. |
Returns: Normalised value.
Implements: AnimatedZoomFactor
BeginWindowSelect
public void BeginWindowSelect()
Start a window selection process.
Implements: BeginWindowSelect
ComputeWrappingBounds
public RectangleF ComputeWrappingBounds(PointF location)
Determine the implied wrapping bounds given the control and the screen containing the location. The wrapping bounds are either the bounds of the screen containing the location, or the intersection of the screen containing the location and the bounds of the control if this intersection is not empty.
Parameters:
| location (PointF) | Hint location in control coordinates. |
Returns: Wrapping bounds in control coordinates.
Implements: ComputeWrappingBounds
CreateFloatingButtons
protected virtual void CreateFloatingButtons()
Override this method to add a set of floating buttons to your control. It will automatically be called at the end of the constructor. You can always choose to add buttons later, but why not Zoidberg?
DispatchRotation
Route a rotation gesture through the responsives stack. The default implementation tries the focused object, then the coincident responsives in reverse order. Subclasses (e.g. Canvas) may override to extend the dispatch — typically by adding a document-pick step when the base path returns Ignored.
Parameters:
| e (ResponseRotationArgs) |
DrawWindowSelectionEdge
public void DrawWindowSelectionEdge()
If a window selection is currently in progress, draw the fill of that window selection fence. By calling this method you override the default window selection drawing pipeline, which allows you to have finer control over the layering of the window rectangle background and foreground.
Implements: DrawWindowSelectionEdge
DrawWindowSelectionEdge
public void DrawWindowSelectionEdge(Pen edge)
If a window selection is currently in progress, draw the fill of that window selection fence. By calling this method you override the default window selection drawing pipeline, which allows you to have finer control over the layering of the window rectangle background and foreground.
Parameters:
| edge (Pen) | Edge edge to use. |
Implements: DrawWindowSelectionEdge
DrawWindowSelectionFill
public void DrawWindowSelectionFill()
If a window selection is currently in progress, draw the fill of that window selection fence. By calling this method you override the default window selection drawing pipeline, which allows you to have finer control over the layering of the window rectangle background and foreground.
Implements: DrawWindowSelectionFill
DrawWindowSelectionFill
public void DrawWindowSelectionFill(Brush fill)
If a window selection is currently in progress, draw the fill of that window selection fence. By calling this method you override the default window selection drawing pipeline, which allows you to have finer control over the layering of the window rectangle background and foreground.
Parameters:
| fill (Brush) | Fill brush to use. |
Implements: DrawWindowSelectionFill
EndWindowSelect
public void EndWindowSelect()
If, for any reason, you wish to terminate a window selection process prematurely, call this method.
Implements: EndWindowSelect
FloatingButtonTooltipOverride
Override this method to provide a custom tooltip for floating buttons.
Parameters:
| button (FloatingButton) | Button for tooltip. |
Returns: True if the standard tooltip ought to be suppressed.
FocusOnIcon
#public void FocusOnIcon()
LooksLikeSingleClick
Test whether the given mouse event is compatible with a single-click-event given the most recent MouseDown event cache.
Parameters:
| e (MouseEventArgs) |
Map
public PointF Map(PointF point, CoordinateSystem from, CoordinateSystem to)
Map a point from one coordinate system to another.
Parameters:
| point (PointF) | Point to map. |
| from (CoordinateSystem) | Coordinate system in which the point is currently defined. |
| to (CoordinateSystem) | Target coordinate system. |
Returns: Mapped point.
Implements: Map
Map
public RectangleF Map(RectangleF rectangle, CoordinateSystem from, CoordinateSystem to)
Map a rectangle from one coordinate system to another.
Parameters:
| rectangle (RectangleF) | Rectangle to map. |
| from (CoordinateSystem) | Coordinate system in which the rectangle is currently defined. |
| to (CoordinateSystem) | Target coordinate system. |
Returns: Mapped rectangle.
Implements: Map
OnKeyDown
protected override void OnKeyDown(KeyEventArgs e)
Key down handler.
Parameters:
| e (KeyEventArgs) |
Overrides: Control.OnKeyDown
OnKeyUp
protected override void OnKeyUp(KeyEventArgs e)
Key up handler.
Parameters:
| e (KeyEventArgs) |
Overrides: Control.OnKeyUp
OnLoad
Raises the Load event, and recurses to this container's children
Parameters:
| e (EventArgs) | Event arguments |
Overrides: Container.OnLoad
OnLoadComplete
Raises the LoadComplete event, and recurses to this container's children
Parameters:
| e (EventArgs) | Event arguments |
Overrides: Container.OnLoadComplete
OnMouseDoubleClick
protected sealed override void OnMouseDoubleClick(MouseEventArgs e)
Default mousedoubleclick handler for IControl. The default handling includes event delegation to the entire IInteraction stack.
Parameters:
| e (MouseEventArgs) |
Overrides: Control.OnMouseDoubleClick
OnMouseDown
protected sealed override void OnMouseDown(MouseEventArgs e)
Default mousedown handler for IControl. The default handling includes event delegation to the entire IInteraction stack, as well as the creation of Pan and Zoom interactions if needed.
Parameters:
| e (MouseEventArgs) |
Overrides: Control.OnMouseDown
OnMouseLeave
protected sealed override void OnMouseLeave(MouseEventArgs e)
Default mouseleave handler for IControl. The default handling deals with the hover tracking mechanism.
Parameters:
| e (MouseEventArgs) |
Overrides: Control.OnMouseLeave
OnMouseMove
protected sealed override void OnMouseMove(MouseEventArgs e)
Default mousemove handler for IControl. The default handling includes event delegation to the entire IInteraction stack, as well as the updating of any active window selection and hover delay tracking.
Parameters:
| e (MouseEventArgs) |
Overrides: Control.OnMouseMove
OnMouseUp
protected sealed override void OnMouseUp(MouseEventArgs e)
Default mouseup handler for IControl. The default handling includes event delegation to the entire IInteraction stack, as well as the terminating of any window selections and the popping of context menus. Furthermore, this method decides whether to provide a Click event for interaction objects.
Parameters:
| e (MouseEventArgs) |
Overrides: Control.OnMouseUp
OnMouseWheel
protected sealed override void OnMouseWheel(MouseEventArgs e)
Default mousewheel handler for IControl. The default handling includes event delegation to the entire IInteraction stack, as well as scroll zooming.
Parameters:
| e (MouseEventArgs) |
Overrides: Control.OnMouseWheel
OnPaint
protected override void OnPaint(PaintEventArgs e)
Runs the drawing pipeline. Do not override this method unless you know *exactly* what you are doing. Handle the Draw(object, ControlDrawEventArgs) event instead.
Parameters:
| e (PaintEventArgs) |
Overrides: Drawable.OnPaint
OnPinchGesture
Handle a pinch gesture tick. The default implementation applies a zoom to the FlexControl FlexControl.Projection (gated on FlexControl.AllowZoom). Subclasses with their own projection — for example the function editor's FrameF — override this to drive that projection instead.
Parameters:
| cursor (PointF) | Cursor position in control coordinates. |
| magnification (float) | Per-tick magnification; positive zooms in. |
OnScrollGesture
protected virtual void OnScrollGesture(SizeF motion)
Handle a scroll gesture tick (two-finger trackpad drag or mouse wheel). The default implementation pans the FlexControl FlexControl.Projection (gated on FlexControl.AllowPan). Subclasses with their own projection override this to drive that projection instead.
Parameters:
| motion (SizeF) | Pan motion in control coordinates. |
Parameters:
| e (EventArgs) | Event arguments |
Overrides: Control.OnSizeChanged
OnTextInput
protected override void OnTextInput(TextInputEventArgs e)
Text input handler.
Parameters:
| e (TextInputEventArgs) |
Overrides: Control.OnTextInput
PopFocus
Pop a responsive object off the focus stack. It doesn't matter if it's at the head of the stack, but if it is, the new head will receive focus.
Parameters:
| responsive (IResponsive) |
PushFocus
Push a new responsive object into the top of the focus stack. This does not register the object with this control.
Parameters:
| responsive (IResponsive) |
RegisterIResponsive
Add a responsive object to this control's awareness. Responsive objects which have been properly registered will automatically have their response methods invoked in case of mouse/keyboard events on the control. The object will not be drawn though, that is the responsibility of the owner.
Parameters:
| responsive (IResponsive) | Responsive to add. |
Implements: RegisterIResponsive
ScheduleRedraw
public void ScheduleRedraw()
Schedule a redraw in the near future. Redraw will happen as quickly as possible, though the message queue will be emptied first.
Implements: ScheduleRedraw
ScheduleRedraw
Schedule a redraw at a roughly defined delay.
Parameters:
| delay (TimeSpan) | Time until redraw after the current drawing operation completes. |
Implements: ScheduleRedraw
UnregisterIResponsive
Remove a responsive object from this control's awareness.
Parameters:
| responsive (IResponsive) |
Implements: UnregisterIResponsive
UpdateMapping
protected void UpdateMapping()
Update the mapping matrices. You *must* call this method whenever you change something that might affect the positioning of the content. For example origin, zoom, bounds...
Events
Draw
This event is raised whenever the control paints itself.
Implements: Draw
MouseDwell
Raised when the mouse dwells over some pixel without moving for a while.
ProjectionChanged
Raised whenever the projection of a control changes.
Implements: ProjectionChanged
WindowSelection
Raised whenever a window selection completes.
Implements: WindowSelection