.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
.. DO NOT EDIT THIS FILE, but the NinePatchRect.xml source instead.
.. The source is found in doc/classes or modules/<name>/doc_classes.

.. _class_NinePatchRect:

NinePatchRect
=============

**Inherits:** :ref:`Control<class_control>` **<** :ref:`CanvasItem<class_canvasitem>` **<** :ref:`Node<class_node>` **<** :ref:`Object<class_object>`

**Category:** Core

Brief Description
-----------------

Scalable texture-based frame that tiles the texture's centers and sides, but keeps the corners' original size. Perfect for panels and dialog boxes.

Signals
-------

.. _class_NinePatchRect_texture_changed:

- **texture_changed** **(** **)**

Fired when the node's texture changes.


Member Variables
----------------

  .. _class_NinePatchRect_axis_stretch_horizontal:

- :ref:`AxisStretchMode<enum_ninepatchrect_axisstretchmode>` **axis_stretch_horizontal** - Doesn't do anything at the time of writing.

  .. _class_NinePatchRect_axis_stretch_vertical:

- :ref:`AxisStretchMode<enum_ninepatchrect_axisstretchmode>` **axis_stretch_vertical** - Doesn't do anything at the time of writing.

  .. _class_NinePatchRect_draw_center:

- :ref:`bool<class_bool>` **draw_center** - If ``true``, draw the panel's center. Else, only draw the 9-slice's borders. Default value: ``true``

  .. _class_NinePatchRect_patch_margin_bottom:

- :ref:`int<class_int>` **patch_margin_bottom** - The height of the 9-slice's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders.

  .. _class_NinePatchRect_patch_margin_left:

- :ref:`int<class_int>` **patch_margin_left** - The height of the 9-slice's left column.

  .. _class_NinePatchRect_patch_margin_right:

- :ref:`int<class_int>` **patch_margin_right** - The height of the 9-slice's right column.

  .. _class_NinePatchRect_patch_margin_top:

- :ref:`int<class_int>` **patch_margin_top** - The height of the 9-slice's top row.

  .. _class_NinePatchRect_region_rect:

- :ref:`Rect2<class_rect2>` **region_rect** - Rectangular region of the texture to sample from. If you're working with an atlas, use this property to define the area the 9-slice should use. All other properties are relative to this one.

  .. _class_NinePatchRect_texture:

- :ref:`Texture<class_texture>` **texture** - The node's texture resource.


Enums
-----

  .. _enum_NinePatchRect_AxisStretchMode:

enum **AxisStretchMode**

- **AXIS_STRETCH_MODE_STRETCH** = **0** --- Doesn't do anything at the time of writing. Default value for ``axis_stretch_horizontal`` and ``axis_stretch_vertical``.
- **AXIS_STRETCH_MODE_TILE** = **1** --- Doesn't do anything at the time of writing.
- **AXIS_STRETCH_MODE_TILE_FIT** = **2** --- Doesn't do anything at the time of writing.


Description
-----------

Better known as 9-slice panels, NinePatchRect produces clean panels of any size, based on a small texture. To do so, it splits the texture in a 3 by 3 grid. When you scale the node, it tiles the texture's sides horizontally or vertically, the center on both axes but it doesn't scale or tile the corners.

