--- title: "Container" description: "All components are always inside of a container, except for the special Root Container of each window." --- # Container > All components are always inside of a container, except for the special Root Container of each window. ![](container.png) **Component Palette Icon**: ![](container1.png) ## Description The container is a very important component. All components are always inside of a container, except for the special "Root Container" of each window (see [Window Properties](visualization-and-dashboards/windows/working-with-vision-windows/window-properties/window-properties.md)). A container is different than normal components in that it can contain other components, including other containers. Uses for containers include: * **Organization** - Containers can be used to group components together. These components can then easily be moved, copied, or deleted as a group. Furthermore, they will all be organized inside of their parent container in the project navigation tree, which makes them easier to find. * **Re-usability** - Containers allow a unique opportunity to create a complex component that is made up of multiple other components. The Container's ability to have [dynamic properties](visualization-and-dashboards/understanding-components/component-customizers/component-customizers.md) aids this greatly. For instance, if you wanted to make your own custom HOA control, you can put three buttons inside of a container and configure them to all use a 'status' property that you add to their parent Container. Now you have built an HOA control that can be re-used and treated like its own component. The possibilities here are endless. Create a date range control that generates an SQL WHERE clause that can be used to control Charts and Tables. Create a label/button control that can be used to display datapoints, and pop up a parameterized window that displays meta-data (engineering units, physical location, notes, etc) about that datapoint. Creating re-usable controls with Containers containing multiple components is the key to rapid application development. * **Layout** - Containers are a great way to improve window aesthetics through borders and layout options. :::info To move a container around on a window, you need to hold the alt key while clicking and dragging. ::: ## Properties | Name | Description | Property Type | Scripting | Category | | ---------------- | ------------------ | ------------- | ------------------------ | ---------- | | Background Color | The background color of the component. | Color | .background | Appearance | | Border | The border surrounding this component. Note that the border is unaffected by rotation. | Border | .border | Common| | Combine Repaints | Set this to true for containers with many sub-components that need to redraw frequently (flashing, rotating, animating). | boolean | .combineRepaints | Behavior | | Cursor | The mouse cursor to use when hovering over this component.| int | .cursorCode | Commo | | Data Quality| The data quality code for any tag bindings on this component. | int | .dataQuality| Data | | Font | Font of text on this component.| Font| .font| Appearance | | Mouseover Text | The text that is displayed in the tooltip which pops up on mouseover of this component. | String | .toolTipText | Common | | Name | The name of this component. | String | .name | Common | | Opaque | If false, backgrounds are not drawn. If true, backgrounds are drawn. | boolean| .opaque | Common | | Styles | Contains the component's styles.| Dataset| .styles | Appearance | | Texture | Background texture image for this container.| String | .texturePath | Appearance | | Tile Optimized | If true, this container's children should never overlap, and you'll get better painting performance. | boolean | .optimizedDrawingEnabled | Behavior | | Visible | If disabled, the component will be hidden. | boolean | .visible| Common | ## Scripting ### Scripting Functions This component does not have scripting functions associated with it. ### Extension Functions This component does not have extension functions associated with it. ### Event Handlers Event handlers allow you to run a script based off specific triggers. See the full list of available event handlers on the [Component Events](scripting\scripting-in-ignition\component-and-window-scripting\component-events.md) page. ## Examples ![](container-example.png) |Property Name| Value| |--|--| |Border |Titled| |Background Color |255,232,204 |