Migrate from Classic Controls to Modern Controls in Power Apps

Have you considered moving you Canvas Apps from Classic Controls to Modern Controls? Unfortunately it isn’t as easy as just replacing each control. In this post I’ll help you find the matching controls and their properties.

Modern Controls than can replace Classic Controls

There are only some of the existing controls that that have been made available within the Modern Controls. So before you start migrating you might want to have a look at some of the Classic Controls in your app and make sure that there is a modern equivalent. Sometimes you might be able to make the Classic Control look similar to the Modern Controls.

The following Controls overview will give you a starting point for migrating your apps.

Classic ControlModern Control
Text LabelText
ButtonButton
Edit Form, View Form, Display FormForm
DatePickerDate Picker
ToggleToggle
Check boxCheck box
Radio Radio
Drop downDropdown
Combo BoxCombobox
Text InputText Input
Text Input (for numbers)Number Input

Text Label vs Text

The following properties within the Text Label and Text match up.

Some of the things that the Text control offers is the Border Radius, both as a single setting or seperate settings for each corner

Border radius set with different values for each corner.
Border radius set with different values for each corner.

Text LabelTextComment
AlignAlignThe Classic Controls use Align.Left, Align.Right, Align.Center and Align.Justify. The Modern Controls use “Start”, “End”, “Center”, “Justify”
AutoHeightAutoHeight
BorderColorBorderColor
BorderRadiusNewly introduced property
BorderRadiusBottomLeftNewly introduced property
BorderRadiusBottomRightNewly introduced property
BorderRadiusTopLeftNewly introduced property
BorderRadiusTopRightNewly introduced property
BorderStyleBorderStyle
BorderThicknessBorderThickness
ColorFontColorOther than the property name change there is no difference
ContentLanguageContentLanguage
DisabledBorderColorProperty Removed
DisabledColorProperty Removed
DisabledFillProperty Removed
DisplayModeDisplayMode
FillFill
FocussedBorderColorProperty Removed
FocussedBorderThicknessProperty Removed
FontFont
FontWeightWeightAll other Font related property received the Font prefix, however Weight has lost the Font Prefix.

Also the values are now texts, “Medium”, “Regular”, “Semibold” and “Bold” rather than FontWeight.Normal, FontWeight.Lighter, FontWeight.Bold and FontWeight.SemiBold
HeightHeight
HoverBorderColorProperty Removed
HoverColorProperty Removed
HoverFillProperty Removed
ItalicFontItalic
LineHeight
LiveProperty Removed
OnSelectProperty Removed
OverflowProperty Removed
PaddingBottomPaddingBottom
PaddingLeftPaddingLeft
PaddingRightPaddingRight
PaddingTopPaddingTop
PressedBorderColorProperty Removed
PressedColorProperty Removed
PressedFillProperty Removed
RoleProperty Removed
SizeSize
StriketroughFontStrikethrough
TabIndexProperty Removed
TextText
TooltipProperty Removed
UnderlineFontUnderLine
VerticalAlignVerticalAlign
VisibleVisible
WidthWidth
WrapWrap
XX
YY

Modern Button vs Classic Button

Classic ButtonModern ButtonComment
AcceptsFocus
AccessibleLabel
AlignAlignThe Classic Controls use Align.Left, Align.Right, Align.Center and Align.Justify. The Modern Controls use “Start”, “End”, “Center”, “Justify”
AppearanceChoose between “Primary” and “Secondary”
BasePaletteColor
AutoDisableOnSelectOption has been removed
BorderColorBorderColor
BorderRadiusNewly introduced property
BorderStyleBorderStyle
BorderThicknessBorderThickness
ColorFontColorOther than the property name change there is no difference
ContentLanguageContentLanguage
DisabledBorderColorProperty Removed
DisabledColorProperty Removed
DisabledFillProperty Removed
DisplayModeDisplayMode
Fill
FocussedBorderColorProperty Removed
FocussedBorderThicknessProperty Removed
FontFont
FontWeightFontWeightAlso the values are now texts, “Medium”, “Regular”, “Semibold” and “Bold” rather than FontWeight.Normal, FontWeight.Lighter, FontWeight.Bold and FontWeight.SemiBold
HeightHeight
HoverBorderColorProperty Removed
HoverColorProperty Removed
HoverFillProperty Removed
Icon
ItalicFontItalic
OnSelectProperty Removed
PaddingBottomPaddingBottom
PaddingLeftPaddingLeft
PaddingRightPaddingRight
PaddingTopPaddingTop
PressedBorderColorProperty Removed
PressedColorProperty Removed
PressedFillProperty Removed
RadiusBottomLeftBorderRadiusBottomLeft
RadiusBottomRightBorderRadiusBottomRight
RadiusTopLeftBorderRadiusTopLeft
RadiusTopRightBorderRadiusTopRight
SizeFontSizeThis property has been renamed. The default value of 0 means that the default size of 14 is used
StriketroughFontStrikethrough
TabIndexProperty Removed
TextText
TooltipProperty Removed
UnderlineFontUnderLine
VerticalAlignVerticalAlign
VisibleVisible
WidthWidth
WrapWrap
XX
YY

Edit Form and View Form vs Form

In this section I will look at the various Forms that have been consolidated into just a single Form control. The Modern Form control with the various field controls inside looks a lot better.

Compare the Modern Controls and Classic Controls for Forms
Compare the Modern Controls and Classic Controls for Forms

When we look at the Form controls we will find that all properties match between Classic and Modern controls.

Classic Edit FormModern FormComments
AcceptsFocusAcceptsFocus
BorderColorBorderColor
BorderStyleBorderStyle
BorderThicknessBorderThickness
ContentLanguageContentLanguage
DataSourceDataSource
DefaultModeDefaultMode
FillFill
FocusedBorderColorFocusedBorderColor
FocusedBorderThicknessFocusedBorderThickness
HeightHeight
ItemItem
OnFailureOnFailure
OnResetOnReset
OnSuccessOnSuccess
VisibleVisible
WidthWidth
XX
YY

Modern Datepicker vs Classic DatePicker

The Datepicker is probably the biggest reason why developers move towards modern controls.

The Modern Controls come with a great date picker!
The Modern Controls come with a great date picker!

The Modern date picker shown above looks indeed a lot better than the classic date picker. Additionally there is no need to press the ok button anymore. This date picker was so poor that I implemented a better version of the datepicker before the modern control cam around.

The Classic Date picker always looked like a beast
The Classic Date picker always looked like a beast

The differences between the Modern and Classic Date picker are:

Classic DatepickerModern DatapickerComment
AccessibleLabelAccessibleLabel
AppearanceSet this to “FilledDarker”,
BasePaletteColor
BorderColorBorderColor
BorderRadius
BorderStyleBorderStyle
BorderThicknessBorderThickness
ColorFontColorOther than the property name change there is no difference
ContentLanguageContentLanguage
DateTimeZoneDateTimeZone
DefaultDate
DisabledBorderColorProperty Removed
DisabledColorProperty Removed
DisabledFillProperty Removed
DisplayModeDisplayMode
EndYearEndDateEnd Year and are not completely the same but close enough.
FillFill
FocussedBorderColorProperty Removed
FocussedBorderThicknessProperty Removed
FontFont
FontWeightFontWeightAlso the values are now texts, “Medium”, “Regular”, “Semibold” and “Bold” rather than FontWeight.Normal, FontWeight.Lighter, FontWeight.Bold and FontWeight.SemiBold
FormatFormatThe classic control uses DateTimeFormat.ShortDate, DateTimeFormat.LongDate etc whereas the modern control uses “Short”, “LongAbbreviated” and “YearMonth”
HeightHeight
IconBackgroundProperty Removed
IconFillProperty Removed
InputTextPlaceHolderPlaceHolder
IsEditableIsEditable
ItalicFontItalic
LanguageIcon
OnChangeOnChange
OnSelectProperty Removed
PaddingBottomPaddingBottom
PaddingLeftPaddingLeft
PaddingRightPaddingRight
PaddingTopPaddingTop
SelectedDate
ResetProperty Removed
SizeFontSizeThis property has been renamed. The default value of 0 means that the default size of 14 is used
StartOfWeekStartOfWeek
FontStrikethroughI’m not sure why you would want to use this but it is available in the modern controls only
FontUnderlineSee FontStrikethrough
StartYearStartDateStartYear and StartDate are not completely the same but can be used in a similar way
TabIndexProperty Removed
TooltipProperty Removed
ValidationState
VisibleVisible
WidthWidth
XX
YY

Modern Radio vs Classic Radio

Like with most of the other controls, Microsoft have made the modern controls all look a bit better. That includes the radio buttons

Two radio buttons labeled '1' and '2' on the left side with a list of three items labeled 'Item 1', 'Item 2', and 'Item 3' on the right side.
Migrate from Classic Controls to Modern Controls in Power Apps 1

When we compare the two version of the radio button we will find these changes that have come through. There have been a lot of properties removed.

Text LabelTextComment
AccessibleLabelAccessibleLabel
BasePaletteColor
BorderColorProperty Removed
BorderStyleProperty Removed
BorderThicknessProperty Removed
ColorFontColorOther than the property name change there is no difference
ContentLanguageContentLanguage
DefaultDefaultSelectedItems
DisabledBorderColorProperty Removed
DisabledColorProperty Removed
DisabledFillProperty Removed
DisplayModeDisplayMode
Fill
Property Removed
FocussedBorderColorProperty Removed
FocussedBorderThicknessProperty Removed
FontFont
FontWeightFontWeightAll other Font related property received the Font prefix, however Weight has lost the Font Prefix.

Also the values are now texts, “Medium”, “Regular”, “Semibold” and “Bold” rather than FontWeight.Normal, FontWeight.Lighter, FontWeight.Bold and FontWeight.SemiBold
HeightHeight
HoverColorProperty Removed
HoverFillProperty Removed
ItalicFontItalic
ItemsItems
LayoutLayout
LineHeightProperty Removed
OnChangeOnChange
OnSelectProperty Removed
PaddingBottomProperty Removed
PaddingLeftProperty Removed
PaddingRightProperty Removed
PaddingTopProperty Removed
PressedColorProperty Removed
PressedFillProperty Removed
RadioBackgroundFillProperty Removed
RadioBorderColorProperty Removed
RadioSelectionFillProperty Removed
RadioSizeRadioSize
ResetProperty Removed
Required
SizeProperty Removed
StriketroughFontStrikethrough
TabIndexProperty Removed
TooltipProperty Removed
UnderlineFontUnderLine
VisibleVisible
WidthWidth
XX
YY

Modern Check box vs Classic Check Box

Text LabelTextComment
AccessibleLabel
BasePaletteColor
BorderColorProperty Removed
BorderStyleProperty Removed
BorderThicknessProperty Removed
CheckboxBackgroundFill
CheckboxBorderColor
CheckboxSizeCheckboxSize
Checked
CheckMarkFill
ColorFontColorOther than the property name change there is no difference
ContentLanguageContentLanguage
DefaultDefaultSelectedItems
DisabledBorderColorProperty Removed
DisabledColorProperty Removed
DisabledFillProperty Removed
DisplayModeDisplayMode
Fill
Property Removed
FocussedBorderColorProperty Removed
FocussedBorderThicknessProperty Removed
FontFont
FontWeightFontWeightAll other Font related property received the Font prefix, however Weight has lost the Font Prefix.

Also the values are now texts, “Medium”, “Regular”, “Semibold” and “Bold” rather than FontWeight.Normal, FontWeight.Lighter, FontWeight.Bold and FontWeight.SemiBold
HeightHeight
HoverBorderColor
HoverColorProperty Removed
HoverFillProperty Removed
ItalicFontItalic
OnCheckOnCheck
OnUncheckOnUncheck
OnSelect
PaddingBottomProperty Removed
PaddingLeftProperty Removed
PaddingRightProperty Removed
PaddingTopProperty Removed
PressedBorderColor
PressedColorProperty Removed
PressedFillProperty Removed
ResetProperty Removed
SizeCheckboxSize, FontSizeThe modern control gives you control over both the check box and the font size.
StriketroughFontStrikethrough
TabIndexProperty Removed
TextLabel
TooltipProperty Removed
UnderlineFontUnderLine
VerticalAlign
VisibleVisible
WidthWidth
XX
YY

Modern Toggle vs Classic Toggle

For the Toggle the biggest change is that you can’t control the look and feel of the toggle depending on the True or False value of the control using the 6 True/False properties, e.g. FalseFill.

Text LabelTextComment
AccessibleLabelAccessibleLabel
BasePaletteColor
BorderColor
BorderStyle
BorderThickness
ColorFontColorOther than the property name change there is no difference
ContentLanguageContentLanguage
DefaultDefaultSelectedItems
DisabledBorderColorProperty Removed
DisabledColorProperty Removed
DisplayModeDisplayMode
FalseFillProperty Removed
FalseHoverFill
FalseText
FocussedBorderColorProperty Removed
FocussedBorderThicknessProperty Removed
FontFont
FontWeightFontWeightAll other Font related property received the Font prefix, however Weight has lost the Font Prefix.

Also the values are now texts, “Medium”, “Regular”, “Semibold” and “Bold” rather than FontWeight.Normal, FontWeight.Lighter, FontWeight.Bold and FontWeight.SemiBold
HandleFill
HeightHeight
HoverBorderColorProperty Removed
ItalicFontItalic
LabelPaddingLeftProperty Removed
LabelPaddingRightProperty Removed
OnChangeThe removal of this property is a shame as sometimes you would want to run code and it doesn’t matter what the current value is.
OnCheckOnCheck
OnSelectOnSelect
OnUncheckOnUncheckProperty Removed
PressedBorderColorProperty Removed
ResetProperty Removed
ShowLabel
Property Removed
SizeToggleSize, FontSizeThe modern control gives you control over both the toggle and the font size.
StriketroughFontStrikethrough
TabIndexProperty Removed
TextPositionLabelPosition
TooltipProperty Removed
TrueFillProperty Removed
TrueHoverFillProperty Removed
TrueTextProperty Removed
UnderlineFontUnderLine
VisibleVisible
WidthWidth
XX
YY

Modern Dropdown vs Classic Drop down

For the Modern Dropdown there are again quite a few changes in the control

Text LabelTextComment
AccessibleLabelAccessibleLabel
Appearance
AllowEmptySelectionRequiredMake sure that you reverse the logic
BasePaletteColor
BorderColorBorderColorProperty Removed
BorderRadius
BorderStyleBorderStyleProperty Removed
BorderThicknessBorderThicknessProperty Removed
ChevronBackground
ChevronDisabledBackground
ChevronDisabledFill
ChevronFill
ChevronHoverBackground
ChevronHoverFill
ColorFontColorOther than the property name change there is no difference
ContentLanguageContentLanguage
DefaultDefaultSelectedItemsnotice that Default delectedItems will be a collection
DisabledBorderColorProperty Removed
DisabledColorProperty Removed
DisabledFillProperty Removed
DisplayModeDisplayMode
FillFill
Property Removed
FocussedBorderColorProperty Removed
FocussedBorderThicknessProperty Removed
FontFont
FontWeightFontWeightAll other Font related property received the Font prefix, however Weight has lost the Font Prefix.

Also the values are now texts, “Medium”, “Regular”, “Semibold” and “Bold” rather than FontWeight.Normal, FontWeight.Lighter, FontWeight.Bold and FontWeight.SemiBold
HeightHeight
HoverBorderColor
HoverColorProperty Removed
HoverFillProperty Removed
ItalicFontItalic
ItemsItems
OnChangeOnChange
OnSelectProperty Removed
PaddingBottomPaddingBottomProperty Removed
PaddingLeftPaddingLeftProperty Removed
PaddingRightPaddingRightProperty Removed
PaddingTopPaddingTopProperty Removed
PressedBorderColor
PressedColorProperty Removed
PressedFillProperty Removed
ResetProperty Removed
SelectionColor
SelectionFill
SizeProperty Removed
StriketroughFontStrikethrough
TabIndexProperty Removed
TooltipProperty Removed
UnderlineFontUnderLine
ValidationState
VisibleVisible
WidthWidth
XX
YY

Modern Combobox vs Classic Combo box

Of the new controls the modern Combo box is probably the hardest control to upgrade. The Trigger Output property is probably one of the biggest changes but I will look at that in a seperate post.

Text LabelTextComment
AccessibleLabelAccessibleLabel
Appearance
BasePaletteColor
BorderColorBorderColorProperty Removed
BorderRadius
BorderStyleBorderStyle
BorderThicknessBorderThickness
ChevronBackgroundProperty Removed
ChevronDisabledBackgroundProperty Removed
ChevronDisabledFillProperty Removed
ChevronFillProperty Removed
ChevronHoverBackgroundProperty Removed
ChevronHoverFillProperty Removed
ColorFontColorOther than the property name change there is no difference
ContentLanguageContentLanguage
Defaultnotice that Default delectedItems will be a collection
DefaultSelectedItemsDefaultSelectedItems
DisabledBorderColorProperty Removed
DisabledColorProperty Removed
DisabledFillProperty Removed
DisplayFields
DisplayModeDisplayMode
FillFill
Property Removed
FocussedBorderColorProperty Removed
FocussedBorderThicknessProperty Removed
FontFont
FontWeightFontWeightAll other Font related property received the Font prefix, however Weight has lost the Font Prefix.

Also the values are now texts, “Medium”, “Regular”, “Semibold” and “Bold” rather than FontWeight.Normal, FontWeight.Lighter, FontWeight.Bold and FontWeight.SemiBold
HeightHeight
HoverBorderColorProperty Removed
HoverColorProperty Removed
HoverFillProperty Removed
InputTextPlaceHolderInputTextPlaceHolder
IsSearchable
ItalicFontItalic
ItemsItems
MultiValueDelimiterMultiValueDelimiter
NoSelectionTextProperty Removed
OnChangeOnChange
OnSelectProperty Removed
PaddingBottomPaddingBottomProperty Removed
PaddingLeftPaddingLeftProperty Removed
PaddingRightPaddingRightProperty Removed
PaddingTopPaddingTopProperty Removed
PressedBorderColor
PressedColorProperty Removed
PressedFillProperty Removed
Required
ResetProperty Removed
SearchFieldsProperty Removed
SelectionColorProperty Removed
SelectionFillProperty Removed
SelectionTagColorProperty Removed
SelectionTagFillProperty Removed
SelectMultipleSelectMultiple
SizeFontSizeProperty Removed
StriketroughFontStrikethrough
TabIndexProperty Removed
TooltipProperty Removed
TriggerOutput
UnderlineFontUnderLine
ValidationState
VisibleVisible
WidthWidth
XX
YY

Discover more from SharePains

Subscribe to get the latest posts sent to your email.

Related Posts

2 thoughts on “Migrate from Classic Controls to Modern Controls in Power Apps

  1. Hi, I gave the modern DatePicker a try, however I noticed that the calendar popover is too small compared to to classic one, making it difficult to select a specific day on a phone display.
    I tried moving the component inside a container, on its own, and setting the page orientation to landscape but still no luck. Are you aware of any solution for this issue?

    1. I’ve seen similar issues with the Classic Date picker as well. When the date picker sits near the bottom of the screen it disappears off the screen and makes it impossible to click on the ok button. I don’t have an easy workaround for mobile devices for this.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.