How to use images as controls

A how-to guide for using images as controls in the solution.

Introduction

Would you like to use a control panel that include images to represent different values? Then add a SelectImage control using images to your solution by following these steps.

Prerequisites

  • You configured the frames and routes for your solution.
  • You configured the relevant contents such as the model(s), control panel(s), viewer(s) and datastore.
  • You saved the images you’d like to use as controls to your solution folder.

1. Configure a selection control

  • Define a control with kind: SelectImage.
  • Define the choices with kind: Image, their value, label and relevant image path.
my-image-selection:
  kind: SelectImage
  label: My image selection
  value: "2"
  choices:
    - kind: Image
      label: image 1
      value: "1"
      imagePath: my-image-ph.png
    - kind: Image
      label: image 2
      value: "2"
      imagePath: my-image-ph.png

2. Set the right size for your image

To display the image choices correctly, the layout width and itemheight should be exactly right based on the sizes of your images (px).

  • Note down the widths and heights of your images in pixels.
  • The itemHeight should be equal to the height of the images.
  • The width of the relevant area in your layout can be calculated with the formula below:
    area-width = 40 + (image-width * number-of-columns) + (6 * (number-of-columns - 1))

The configuration should look similar to the example below:

my-home-frame:
  kind: Frame
  layout: 
    kind: ColumnLayout
    widths:
      [auto, 583px] #use the formula to calculate the width of the control panel
      
    areas:
      ["",my-params]
  contents:
    my-params:
      kind: ControlPanel
      controls:
        my-image-selection:
          kind: SelectImage
          label: My image selection
          value: "2"
          itemHeight: 100
          numberOfColumns: 1
          choices: ...

See the image below as an example.

Configuration

See the SelectImageControlConfig configuration docs and imageChoiceConfig configuration docs for more information.