cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
not_a_thing
Helper I
Helper I

Embedded canvas app on a model-dribven form has huge white space below it

Hi All! I'm running into a weird re-sizing issue whilst working on an embedded Canvas App in a model-driven app that sits on top of a leads form. The Dynamics form is adding white space below my app no matter where I place it. Here’s a screenshot from the editor:

not_a_thing_0-1623928484925.png

 

 

But when I publish the app, in CRM the App.Height becomes another much larger number, dependent on what screen size I use:

not_a_thing_1-1623928484926.png

 


As you can see, App.Heigh changed to 936. The value is different based on the screen size

What I tried is to:

  • set App.MinScreenHeight from the default 320 to 120
  • change Form.Height from Max(App.Height, App.MinScreenHeight) to just 120
  • enable/disable Scale to Fit/Lock Screen/Lock aspect ratios
  • hardcode App.Height in both App.OnStart and Form.OnVisible
  • change the column layout in the CRM to 1-2-3 column setup (that actually changes the size of the app height, but not removing it completely.)

to no avail.

The only thing I see is that it's the App.Height "destroying it", Form.Height stays constant

 

1 ACCEPTED SOLUTION

Accepted Solutions
not_a_thing
Helper I
Helper I

OK, our client has been generous and let me have the time needed to find out about this.

First thing first, I found this article:

Embedded canvas app guidelines and known issues

There, there are basically 2 things that can screw it up:

  • The Scale to fit option isn’t enabled with the canvas app.
  • The App Name property value is missing or is incorrectly defined in the embedded canvas app control. This might occur when the model-driven app and canvas app have been imported as a solution into another Dataverse environment.

So I narrowed it down to App Name, as Scale to Fit seems to have no effect in my case - it definitely can't fix the issue by just turning it on when you already have the white space below the app.

After creating a bunch of test apps, moving them around, trying on different screens, I have come to this conclusion:
 
  1. You can only create canvas apps on embedding to the model-driven form. Creating it first, and copy-pasting the ID in the model-driven form will work, but! it will drag some bugs in the process - like the white space below.
    The reason for this, you'll need to have the auto-generated app name in the app name field. Otherwise, this will always produce white space below the app
    not_a_thing_0-1624357674248.png

     


    Several guides state that you can just copy both App name and App ID "exactly how they appear on the screen", but you can observe, that even on the example screen above from MS (Add an embedded canvas app), the name is not exactly the app's name, but prefix+appname+suffix ("contoso" and "c2ae6" in this example). Prefix is just the same as in solution, but I have not been able to see any connection between the suffix and my current environment or solution.
  2. Resizing the app only works while Scale to Fit is turned on (meaning app not scaling to fit, not_a_thing_1-1624357673775.pngto Microsoft). If your app needs to fit to the column width, (thus the need to turn the option for Scale to Fit off), then you need to first enable Scale to Fit, adjust height/width in the settings, save+publish, turn off Scale to Fit, save+publish
  3. Having dynamic FormScreen Height is just a roulette. This is confusing, why setting height to Max(App.Height, App.MinScreenHeight) will sometimes destroy the rendering, an sometimes it will not.

 

So what I did was to create a new app inside the form, set the right size from the very start in advanced settings, leave the Scale to Fit option on, save (it will autopublish).

WAIT until the App name field will autogenerate in the model-driven form. Save and publish the form

Go back to the app, adjust both App.MinScreenHeight and App. MinScreenWidth to the smallest values desired, adjust all of the Screens Height and Width to the same constant values that you provided for the app size (in the advanced settings), save and publish.

Then I spent half an hour copying my old app to the new; many things will copy-paste, but the the absolute positions of the controls were wrecked. Media had to be re-imported.

Save and publish.

At this time, the white space below will disappear, but the scrollbars will remain, when you switch to a smaller screen.

This is when you change the Screen Height and Width back to default Max(App.Height, App.MinScreenHeight) and Max(App.Width, App.MinScreenWidth) and turn Scale to Fit off.

This is my result:

not_a_thing_2-1624357674273.png

 

and I haven't been so happy in a week 😊

View solution in original post

1 REPLY 1
not_a_thing
Helper I
Helper I

OK, our client has been generous and let me have the time needed to find out about this.

First thing first, I found this article:

Embedded canvas app guidelines and known issues

There, there are basically 2 things that can screw it up:

  • The Scale to fit option isn’t enabled with the canvas app.
  • The App Name property value is missing or is incorrectly defined in the embedded canvas app control. This might occur when the model-driven app and canvas app have been imported as a solution into another Dataverse environment.

So I narrowed it down to App Name, as Scale to Fit seems to have no effect in my case - it definitely can't fix the issue by just turning it on when you already have the white space below the app.

After creating a bunch of test apps, moving them around, trying on different screens, I have come to this conclusion:
 
  1. You can only create canvas apps on embedding to the model-driven form. Creating it first, and copy-pasting the ID in the model-driven form will work, but! it will drag some bugs in the process - like the white space below.
    The reason for this, you'll need to have the auto-generated app name in the app name field. Otherwise, this will always produce white space below the app
    not_a_thing_0-1624357674248.png

     


    Several guides state that you can just copy both App name and App ID "exactly how they appear on the screen", but you can observe, that even on the example screen above from MS (Add an embedded canvas app), the name is not exactly the app's name, but prefix+appname+suffix ("contoso" and "c2ae6" in this example). Prefix is just the same as in solution, but I have not been able to see any connection between the suffix and my current environment or solution.
  2. Resizing the app only works while Scale to Fit is turned on (meaning app not scaling to fit, not_a_thing_1-1624357673775.pngto Microsoft). If your app needs to fit to the column width, (thus the need to turn the option for Scale to Fit off), then you need to first enable Scale to Fit, adjust height/width in the settings, save+publish, turn off Scale to Fit, save+publish
  3. Having dynamic FormScreen Height is just a roulette. This is confusing, why setting height to Max(App.Height, App.MinScreenHeight) will sometimes destroy the rendering, an sometimes it will not.

 

So what I did was to create a new app inside the form, set the right size from the very start in advanced settings, leave the Scale to Fit option on, save (it will autopublish).

WAIT until the App name field will autogenerate in the model-driven form. Save and publish the form

Go back to the app, adjust both App.MinScreenHeight and App. MinScreenWidth to the smallest values desired, adjust all of the Screens Height and Width to the same constant values that you provided for the app size (in the advanced settings), save and publish.

Then I spent half an hour copying my old app to the new; many things will copy-paste, but the the absolute positions of the controls were wrecked. Media had to be re-imported.

Save and publish.

At this time, the white space below will disappear, but the scrollbars will remain, when you switch to a smaller screen.

This is when you change the Screen Height and Width back to default Max(App.Height, App.MinScreenHeight) and Max(App.Width, App.MinScreenWidth) and turn Scale to Fit off.

This is my result:

not_a_thing_2-1624357674273.png

 

and I haven't been so happy in a week 😊

View solution in original post

Helpful resources

Announcements
2022 Release Wave 1 760x460.png

2022 Release Wave 1 Plan

Power Platform release plan for the 2022 release wave 1 describes all new features releasing from April 2022 through September 2022.

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Top Solution Authors
Top Kudoed Authors
Users online (3,509)