# ThemedControlHandler<TControl, TWidget, TCallback> class

Namespace: [Eto.Forms](https://eto.picoe.ca/api/namespace/eto.forms.md) · Assembly: [Eto](https://eto.picoe.ca/api/assembly/eto.md)

```cs
public class ThemedControlHandler<TControl, TWidget, TCallback> : WidgetHandler<TControl, TWidget, TCallback>, Control.IHandler
```

Base class for implementing Eto control handlers using other Eto controls.

**Remarks:** This allows a single implementation to be used in multiple platforms and is useful in a couple of scenarios: a) Creating default implementations of a control on platforms that do not support the control natively. b) Implementing a control with a non-native look and feel that is consistent across platforms.

**Type parameters:**

- `TControl` (where Control): The Eto control used to create the custom implementation, e.g. Panel
- `TWidget` (where Control): The control being implemented, e.g. TabControl
- `TCallback` (where Control.ICallback): The callback inferface for the control, e.g. TabControl.ICallback

**Derived types:** [ThemedCollectionEditorHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedcollectioneditorhandler.md), [ThemedColorPickerHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedcolorpickerhandler.md), [ThemedContainerHandler<TControl, TWidget, TCallback>](https://eto.picoe.ca/api/type/eto.forms.themedcontainerhandler-3.md), [ThemedDateTimePickerHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themeddatetimepickerhandler.md), [ThemedFilePickerHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedfilepickerhandler.md), [ThemedFontPickerHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedfontpickerhandler.md), [ThemedListBoxHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedlistboxhandler.md), [ThemedNumericStepperHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themednumericstepperhandler.md), [ThemedPropertyGridHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedpropertygridhandler.md), [ThemedSegmentedButtonHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedsegmentedbuttonhandler.md), [ThemedSpinnerHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedspinnerhandler.md), [ThemedStepperHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedstepperhandler.md), [ThemedTextStepperHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedtextstepperhandler.md), [ThemedTreeViewHandler](https://eto.picoe.ca/api/type/eto.forms.themedcontrols.themedtreeviewhandler.md)

## Properties

- [AllowDrop](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/allowdrop.md): Gets or sets a value indicating whether this control can serve as drop target.
- [BackgroundColor](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/backgroundcolor.md): Gets or sets the color for the background of the control
- [ContextMenu](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/contextmenu.md): Gets or sets the context menu to show when the user right clicks or presses the menu key
- [ControlObject](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/controlobject.md): Gets the instance of the platform-specific object
- [Cursor](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/cursor.md): Gets or sets the type of cursor to use when the mouse is hovering over the control
- [Enabled](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/enabled.md): Gets or sets a value indicating whether this control is enabled
- [FocusControl](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/focuscontrol.md): Gets the control used to attach focus events.
- [HasFocus](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/hasfocus.md): Gets a value indicating whether this instance has the keyboard input focus.
- [Height](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/height.md): Gets or sets the height of the control size.
- [IsMouseCaptured](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/ismousecaptured.md): Gets a value indicating this control currently has mouse capture
- [KeyboardControl](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/keyboardcontrol.md): Gets the control used to attach keyboard and text input events
- [Location](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/location.md): Gets the location of the control as positioned by the container
- [MouseControl](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/mousecontrol.md): Gets the control used to attach mouse events
- [PropagateLoadEvents](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/propagateloadevents.md): Gets a value indicating whether [Control.PreLoad](https://eto.picoe.ca/api/type/eto.forms.control/preload.md)/[Control.Load](https://eto.picoe.ca/api/type/eto.forms.control/load.md)/[Control.LoadComplete](https://eto.picoe.ca/api/type/eto.forms.control/loadcomplete.md)/[Control.UnLoad](https://eto.picoe.ca/api/type/eto.forms.control/unload.md) events are propagated to the inner control
- [Size](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/size.md): Gets or sets the size of the control. Use -1 to specify auto sizing for either the width and/or height.
- [SupportedPlatformCommands](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/supportedplatformcommands.md): Gets the supported platform commands that can be used to hook up system functions to user defined logic
- [TabIndex](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/tabindex.md): Gets or sets the tab index order for this control within its container.
- [TabStop](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/tabstop.md): Gets or sets a value indicating whether the user can get to this control using the tab key.
- [ToolTip](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/tooltip.md): Gets or sets the tool tip to show when the mouse is hovered over the control
- [Visible](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/visible.md): Gets or sets a value indicating whether this control is visible to the user.
- [VisualControls](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/visualcontrols.md): Gets an enumeration of controls that are in the visual tree.
- [Width](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/width.md): Gets or sets the width of the control size.

## Methods

- [AddGesture](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/addgesture.md): Adds a gesture to the control.
- [AttachEvent](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/attachevent.md): Attaches the specified event to the platform-specific control
- [CaptureMouse](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/capturemouse.md): Captures all mouse events to this control.
- [ClearGestures](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/cleargestures.md): Removes all gestures from the control.
- [DoDragDrop](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/dodragdrop.md): Starts drag operation using this control as drag source.
- [Focus](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/focus.md): Attempts to set the keyboard input focus to this control, or the first child that accepts focus
- [GetNativeParentWindow](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/getnativeparentwindow.md): Gets the window this control is contained in
- [GetPreferredSize](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/getpreferredsize.md): Gets the preferred size of this control given the specified `availableSize`.
- [Initialize](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/initialize.md): Called to initialize this widget after it has been constructed
- [Invalidate](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/invalidate.md): (2 overloads) Queues a repaint of the entire control on the screen
- [MapPlatformCommand](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/mapplatformcommand.md): Specifies a command to execute for a platform-specific command
- [OnLoad](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/onload.md): Called when the control is loaded on a form
- [OnLoadComplete](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/onloadcomplete.md): Called after all other controls have been loaded
- [OnPreLoad](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/onpreload.md): Called before the control is loaded on a form
- [OnUnLoad](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/onunload.md): Called when the control is unloaded, which is when it is not currently on a displayed window
- [PointFromScreen](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/pointfromscreen.md): Converts a point from screen space to control space.
- [PointToScreen](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/pointtoscreen.md): Converts a point from control space to screen space
- [Print](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/print.md)
- [ReleaseMouseCapture](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/releasemousecapture.md): Releases the mouse capture after a call to [Control.IHandler.CaptureMouse()](https://eto.picoe.ca/api/type/eto.forms.control.ihandler/capturemouse.md).
- [RemoveGesture](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/removegesture.md): Removes a gesture from the control.
- [ResumeLayout](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/resumelayout.md): Resumes the layout after it has been suspended, and performs a layout
- [SetParent](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/setparent.md): Called when the parent of the control has been set
- [SuspendLayout](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/suspendlayout.md): Suspends the layout of child controls
- [UpdateLayout](https://eto.picoe.ca/api/type/eto.forms.themedcontrolhandler-3/updatelayout.md): Updates the layout of this control if necessary.

## Inherited Members

- From [WidgetHandler<TControl, TWidget, TCallback>](https://eto.picoe.ca/api/type/eto.widgethandler-3.md): [Callback](https://eto.picoe.ca/api/type/eto.widgethandler-3/callback.md)
- From [WidgetHandler<TControl, TWidget>](https://eto.picoe.ca/api/type/eto.widgethandler-2.md): [Connector](https://eto.picoe.ca/api/type/eto.widgethandler-2/connector.md), [Control](https://eto.picoe.ca/api/type/eto.widgethandler-2/control.md), [DisposeControl](https://eto.picoe.ca/api/type/eto.widgethandler-2/disposecontrol.md), [HasControl](https://eto.picoe.ca/api/type/eto.widgethandler-2/hascontrol.md), [CreateConnector](https://eto.picoe.ca/api/type/eto.widgethandler-2/createconnector.md), [CreateControl](https://eto.picoe.ca/api/type/eto.widgethandler-2/createcontrol.md), [Dispose](https://eto.picoe.ca/api/type/eto.widgethandler-2/dispose.md)
- From [WidgetHandler<TWidget>](https://eto.picoe.ca/api/type/eto.widgethandler-1.md): [ID](https://eto.picoe.ca/api/type/eto.widgethandler-1/id.md), [NativeHandle](https://eto.picoe.ca/api/type/eto.widgethandler-1/nativehandle.md), [Widget](https://eto.picoe.ca/api/type/eto.widgethandler-1/widget.md), [DetachEvent](https://eto.picoe.ca/api/type/eto.widgethandler-1/detachevent.md), [Dispose](https://eto.picoe.ca/api/type/eto.widgethandler-1/dispose.md), [HandleEvent](https://eto.picoe.ca/api/type/eto.widgethandler-1/handleevent.md), [IsEventHandled](https://eto.picoe.ca/api/type/eto.widgethandler-1/iseventhandled.md), [OnInitializeComplete](https://eto.picoe.ca/api/type/eto.widgethandler-1/oninitializecomplete.md), [UnhandleEvent](https://eto.picoe.ca/api/type/eto.widgethandler-1/unhandleevent.md)
