# Extenders

Wisej.NET extenders are components that add and manage properties for other components.

{% hint style="info" %}
Since properties cannot be added to existing classes or objects, extender properties appear only in the designer. At runtime, they function as Set/Get methods on the extender.
{% endhint %}

Extenders must implement the [IExtenderProvider](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.iextenderprovider) interface, determining which components can be extended through the [CanExtend(component)](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.iextenderprovider.canextend) implementation.

Some extenders integrate into existing components. For example, [TableLayoutPanel](/docs/controls/containers/tablelayoutpanel.md), [FlexLayoutPanel](/docs/controls/containers/flexlayoutpanel.md), and [FlowLayoutPanel](/docs/controls/containers/flowlayoutpanel.md) add properties to their children. In web systems, this enables powerful features - when dropping a control into a `FlexLayoutPanel`, it gains properties like `FillWeight`, `AlignX`, `AlignY`. These properties are contextual to the [FlexLayoutPanel](/docs/controls/containers/flexlayoutpanel.md) container.

Other extenders, like [Animation](/docs/controls/extenders/animation.md) and [ToolTip](/docs/controls/extenders/tooltip.md), operate without UI, adding features to extended controls.

{% hint style="info" %}
Multiple instances of the same extender can coexist. Adding multiple `Animation` extenders enables defining different animations for each control, triggered by different events.
{% endhint %}

## IExtenderProvider

The [System.ComponentModel.IExtenderProvider](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.iextenderprovider) is part of .NET's System.ComponentModel infrastructure, requiring one method:

### bool CanExtend(object target)

Returns `true` if the extender supports extending the target object. Microsoft's documentation provides comprehensive examples.

### ProvidePropertyAttribute

Extender classes declare their provided properties using [ProvidePropertyAttribute](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.providepropertyattribute) declarations.

## IWisejExtenderProvider


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wisej.com/docs/controls/extenders.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
