{
  "buttonControl": {
    "description": "Represents a button control that reacts to touch events.",
    "properties": [
      {
        "name": "Background",
        "type": "Color",
        "description": "The background color of the control."
      },
      {
        "name": "Border",
        "type": "Color",
        "description": "The color of the control's border."
      },
      {
        "name": "BorderThickness",
        "type": "Float",
        "description": "The width of the control's border."
      },
      {
        "name": "CornerRadius",
        "type": "Integer",
        "description": "The radius for the corners of the control's border."
      },
      {
        "name": "Foreground",
        "type": "Color",
        "description": "The color of the control's content."
      },
      {
        "name": "Icon",
        "type": "Icon",
        "description": "The icon for the control."
      },
      {
        "name": "IconPosition",
        "type": "Enum",
        "description": "The position of the icon relative to the text. Possible values are 'Left', 'Right', & 'Top'."
      },
      {
        "name": "IconSize",
        "type": "Float",
        "description": "The size of the icon in dp pixels."
      },
      {
        "name": "IconSpacing",
        "type": "Float",
        "description": "The spacing between the icon and text."
      },
      {
        "name": "ShowAsMonochrome",
        "type": "Boolean",
        "description": "A value that indicates whether the 'Foreground' color is applied to the icon."
      },
      {
        "name": "FontSize",
        "type": "Float",
        "description": "The size of the text in dp pixels."
      },
      {
        "name": "FontStyle",
        "type": "Enum",
        "description": "The style in which the text is rendered. Possible values are 'Normal' & 'Italic'."
      },
      {
        "name": "FontWeight",
        "type": "Enum",
        "description": "The thickness of the specified font. Possible values are 'Thin', 'Light', 'Normal', 'Medium', 'Bold', 'Black'."
      },
      {
        "name": "Text",
        "type": "String",
        "description": "A string that specifies the text contents of the button."
      },
      {
        "name": "TextDecorations",
        "type": "Enum",
        "description": "A value that indicates what decorations are applied to the text. Possible values are 'None', 'Strikethrough', & 'Underline'."
      },
      {
        "name": "ButtonType",
        "type": "Enum",
        "description": "The type of button. Possible values are 'Normal', 'Repeat', & 'Toggle'."
      },
      {
        "name": "IsChecked",
        "type": "Boolean",
        "description": "A value that indicates whether the button is checked. This applies only when 'ButtonType' is set to 'Toggle'."
      },
      {
        "name": "IsPressed",
        "type": "Boolean",
        "description": "A value that indicates whether the button is currently in a pressed state."
      },
      {
        "name": "RepeatInterval",
        "type": "Integer",
        "description": "The time, in milliseconds, between repetitions of the click action, as soon as repeating starts. This applies only when 'ButtonType' is set to 'Repeat'."
      },
      {
        "name": "Height",
        "type": "Float",
        "description": "The suggested height of the control in dp pixels."
      },
      {
        "name": "HorizontalAlignment",
        "type": "Enum",
        "description": "The horizontal alignment characteristics that are applied to the control when it is composed in a parent layout panel, such as a Grid."
      },
      {
        "name": "HorizontalContentAlignment",
        "type": "Enum",
        "description": "The horizontal alignment of the control's content."
      },
      {
        "name": "Margin",
        "type": "Thickness",
        "description": "The outer margin that is applied to the control when it is composed in a parent layout panel, such as a Grid."
      },
      {
        "name": "Padding",
        "type": "Thickness",
        "description": "The amount of space between the content of the control and its border."
      },
      {
        "name": "Rotation",
        "type": "Integer",
        "description": "The rotation about the Z-axis in degrees."
      },
      {
        "name": "VerticalAlignment",
        "type": "Enum",
        "description": "The vertical alignment characteristics that are applied to the control when it is composed in a parent layout panel, such as a Grid."
      },
      {
        "name": "VerticalContentAlignment",
        "type": "Enum",
        "description": "The vertical alignment of the control's content."
      },
      {
        "name": "Width",
        "type": "Float",
        "description": "The suggested width of the control in dp pixels."
      },
      {
        "name": "IsEnabled",
        "type": "Boolean",
        "description": "A value that indicates whether the user can interact with the control."
      },
      {
        "name": "IsHitTestVisible",
        "type": "Boolean",
        "description": "A value that indicates whether the contained area of the control can return true values for hit testing."
      },
      {
        "name": "IsVisible",
        "type": "Boolean",
        "description": "A value that indicates whether the control should be visible."
      },
      {
        "name": "Opacity",
        "type": "Float",
        "description": "A value between 0 and 1.0 that declares the opacity factor, with 1.0 meaning full opacity and 0 meaning transparent."
      }
    ],
    "events": [
      {
        "name": "Loaded",
        "description": "Occurs when the element is laid out, rendered, and ready for interaction."
      },
      {
        "name": "Unloaded",
        "description": "Occurs when the element is no longer rendered on the screen."
      },
      {
        "name": "Clicked",
        "description": "Occurs when the button control is clicked."
      },
      {
        "name": "Pressed",
        "description": "Occurs when the button control is pressed."
      },
      {
        "name": "Released",
        "description": "Occurs when the button control is released."
      },
      {
        "name": "Canceled",
        "description": "Occurs when the button control click is canceled."
      },
      {
        "name": "Checked",
        "description": "Occurs when the button is checked. This applies only when 'ButtonType' is set to 'Toggle'."
      },
      {
        "name": "Unchecked",
        "description": "Occurs when the button is unchecked. This applies only when 'ButtonType' is set to 'Toggle'."
      }
    ]
  }
}
