Canvas Apps: Screens, Controls and Properties

First lesson of the Power Apps: No-Code Business Apps course, free to read: about 15 minutes, 3 exercises and 3 quiz questions. This is the catalogue's base lesson; in the student space, it is rewritten for your profile.

Objectives

  • Distinguish a canvas app from a model-driven app
  • Find your way around Power Apps Studio: screens, tree view, properties, formula bar
  • Write your first property and behavior formulas

Canvas appPower Apps StudioControls and propertiesNavigating between screens

What is Power Apps?

Power Apps lets you create business apps without traditional development: purchase request entry, inventory, field inspection, visit tracking. Apps run in a browser, on mobile (the Power Apps app) and in Teams. They rely on data sources (SharePoint lists, Dataverse, Excel, SQL…) and can trigger Power Automate flows.

You build them on make.powerapps.com and there are two types:

Type Principle When to use it
Canvas you design each screen, pixel by pixel, and write formulas custom interfaces, mobile, varied sources
Model-driven the app is generated from Dataverse tables, forms and views data-rich processes, standardized interface

This course is about canvas apps.

The studio

Create > Blank app > Blank canvas app opens Power Apps Studio:

  • the tree view (on the left): the screens and their controls;
  • the canvas (in the center): the screen being designed;
  • the properties pane (on the right): the settings of the selected control;
  • the formula bar (at the top): the dropdown list of properties and the formula of the chosen property;
  • the Insert menu: labels, buttons, text inputs, dropdowns, galleries, forms, icons.

Choose the format (phone or tablet) at the start: it sets the proportions of the screens.

Properties that are formulas

Each control has properties: Text, Fill (background color), Color, Visible, X, Y, Width, Height, DisplayMode… The value of a property is a Power Fx formula, recalculated automatically as soon as a value it depends on changes, exactly like an Excel cell.

Example: a text input txtNom and a label whose Text property is:

"Bonjour " & txtNom.Text

As soon as the user types their name, the label updates, with no button or extra code. Likewise, the Visible property of a button can be !IsBlank(txtNom.Text): the button appears only if the name has been entered.

Function names are always in English (If, Filter, Navigate). However, in a Power Apps configured for French, the separators follow the language: ; between arguments (instead of ,), ;; to chain actions (instead of ;), and the comma as the decimal separator (1,5). Microsoft’s documentation, written in English, uses , and ;: adapt accordingly.

Behavior properties

Some properties do not calculate a value but run actions on an event: OnSelect (click or tap), OnChange, OnVisible (when a screen is displayed), App.OnStart (when the app opens). Example on a button:

Navigate(EcranDetail; ScreenTransition.Fade)

Navigate displays another screen, Back() returns to the previous one. Several actions are chained with ;;:

Notify("Demande enregistrée"; NotificationType.Success);; Navigate(EcranAccueil)

Name, test, publish

  • Name screens and controls with a prefix: scrAccueil, lblTitre, btnValider, txtMontant, galDemandes. Formulas become readable.
  • Test with Preview (F5); exit with Esc. In the studio, hold Alt to click a button without leaving design mode.
  • Save creates a version; Publish makes that version available to users. As long as you don’t publish, they keep using the previous one.
  • The app checker (stethoscope icon) lists formula errors and accessibility issues.

Exercises

Solutions and tests stay on the server. In the student space, your code is run and checked, and the tutor gives hints before the solution.

  1. TaskDifficulty 12 hints

    First reactive screen

    Environment: use the Microsoft 365 account and the Power Apps environment provided by the course (make.powerapps.com). The available features and connectors depend on your organization’s license. Formulas are written with the separators of a French Power Apps: ; between arguments, ;; between two actions.

    1. Create a blank canvas app in phone format named Demandes d’achat.
    2. Rename the screen scrAccueil. Insert a text input txtNom, a label lblBonjour and a button btnContinuer.
    3. lblBonjour.Text: "Bonjour " & txtNom.Text.
    4. btnContinuer.Visible: !IsBlank(txtNom.Text).
    5. Add a second screen scrDemandes with a label “Mes demandes” and an arrow icon whose OnSelect is Back().
    6. btnContinuer.OnSelect: Navigate(scrDemandes; ScreenTransition.Cover).
    7. Test in preview by entering Alice, then save and publish.
    • The label displays "Bonjour Alice" while typing
    • The button is hidden as long as the text input is empty
    • The button opens scrDemandes and the icon goes back to scrAccueil
    • The tree view shows prefixed names (scr, txt, lbl, btn)
  2. TaskDifficulty 12 hints

    Conditional color

    In the Demandes d’achat app, on scrAccueil:

    1. Add a text input txtMontant (Format property: TextFormat.Number).
    2. Add a label lblAlerte whose Text is If(Value(txtMontant.Text) > 500; "Validation du responsable requise"; "Validation automatique").
    3. Its Color property: If(Value(txtMontant.Text) > 500; Color.Red; Color.DarkGreen).
    4. Test with 280, then 820.
    • With 280, the label displays "Validation automatique" in green
    • With 820, the label displays "Validation du responsable requise" in red
    • No error appears in the app checker
  3. Multiple choiceDifficulty 11 hint

    Behavior property

    Where do you write the formula Navigate(scrDetail) so that it runs when the user presses a button?

    • In the button's Text property
    • In the button's OnSelect property
    • In the screen's Visible property
    • In the button's Fill property

End-of-lesson quiz

  1. Which argument separator does a Power Apps configured for French use?

    • The semicolon ;
    • The comma ,
    • The period .
  2. What is distinctive about a model-driven app?

    • It is generated from Dataverse tables
    • It is designed pixel by pixel
    • It does not work on mobile
  3. What happens to users if you save without publishing?

    • They keep using the previously published version
    • They see the new version
    • The app is deleted

The rest of the course

  1. Data Sources and Delegation20 min
  2. Power Fx Formulas: Variables, Filters and Logic20 min
  3. Galleries and Forms: Display, Create, Edit20 min
  4. Sharing, Security and Lifecycle15 min

Power Apps: No-Code Business Apps · Intermediate · 1 h 30 min