{"id":133464,"date":"2026-02-25T09:30:00","date_gmt":"2026-02-25T17:30:00","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/?p=133464"},"modified":"2026-02-25T08:54:54","modified_gmt":"2026-02-25T16:54:54","slug":"new-quality-updates-to-modern-controls-in-canvas-apps","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-apps\/new-quality-updates-to-modern-controls-in-canvas-apps\/","title":{"rendered":"New quality updates to modern controls in canvas apps"},"content":{"rendered":"\n
Canvas apps are at an important moment. As AI reshapes how applications are built and experienced, we’re bringing canvas apps along \u2014 and that requires a foundation that makers can rely on. Reliable controls, consistent behavior, and performance that holds up in production are what make everything else possible.<\/p>\n\n\n\n
This release is focused on that foundation. It’s part of a broader pace of investment in canvas apps that also includes Card control<\/a>, Confirm() for canvas apps<\/a>, and copy and paste themes<\/a>. In the coming weeks, we’ll share more about the future of canvas apps and upcoming investments \u2014 including AI. Today’s focus is quality updates to nine modern controls: Text, Number Input, Date Picker, Text Input, Tab List, Combo Box, Radio, Link, and Info Button.<\/p>\n\n\n\n Modern controls are the foundation of the canvas app experience we’re building toward. For that foundation to hold up \u2014 in production apps, across mobile and desktop \u2014 it needs to be reliable, performant, and consistent with the Power Fx patterns makers already know. These updates close the gaps that surfaced through real-world use across these controls.<\/p>\n\n\n\n The Combo Box is the primary way users make selections in most canvas apps, and this update addresses several areas where it was falling short.<\/p>\n\n\n\n The previous version had a practical item limit of around 800 records when bound to a data source \u2014 a constraint that forced workarounds in many real-world apps. The updated control handles several thousand items directly. For very large datasets, the SearchText<\/strong> output property enables server-side filtering so the control can work with data at any scale.<\/p>\n\n\n\n Beyond data scale, this update addresses selection behavior and form reliability. Selections can now be cleared by clicking a selected item \u2014 the control now behaves the way makers expected from the start. Many-to-One Dataverse relationships work correctly, opening up relational data patterns that weren’t reliably possible before. Inside forms, the control holds its value through SubmitForm()<\/strong> and resets cleanly when Reset()<\/strong> is called. SelectMultiple<\/strong> now defaults to `true`, reflecting how the control is most commonly used.<\/p>\n\n\n\n Learn more on Combo Box updates \u2192<\/a><\/p>\n\n\n\n The Date Picker updates center on two themes: view-mode correctness and reliability in dynamic layouts. When DisplayMode<\/strong> is set to `View`, the control now renders as read-only rather than remaining editable. In galleries and in screens with navigation, date values now persist correctly. Date format and timezone settings are honored consistently. The calendar flyout is also correctly sized on mobile devices.<\/p>\n\n\n\n Learn more on Date Picker updates \u2192<\/a><\/p>\n\n\n\n The central update to Text Input is OnChange<\/strong> timing. The event now fires when the user leaves the field, not on every keystroke. This removes a class of performance issues and unintended formula side effects that were common in form-based apps \u2014 and it’s one of the most frequently raised pieces of feedback for this control. TriggerOutput<\/strong> now defaults to OnKeypress<\/strong> so the output value updates as the user types, which is the behavior most makers expected. For Text Input controls inside a form, TriggerOutput defaults to Delayed<\/strong>. DisplayMode.View<\/strong> now renders as genuinely read-only.<\/p>\n\n\n\n Learn more on Text Input updates \u2192<\/a><\/p>\n\n\n\n The Text control gains OnSelect<\/strong>, making it possible to trigger actions when a user selects text \u2014 for navigation, expandable content, or similar patterns \u2014 without needing a separate Button control. AutoHeight<\/strong> now recalculates correctly in dynamic layouts where a control is hidden and shown again. The default vertical alignment is now Middle<\/strong>.<\/p>\n\n\n\n Learn more on Text updates \u2192<\/a><\/p>\n\n\n\n Number Input now matches Text Input in styling coverage \u2014 Font Color, font weight, and property panel organization are all consistent across the two controls. OnChange<\/strong> behavior aligns as well: the event fires on blur and on step button clicks. The control also now enforces that Min<\/strong> cannot exceed Max<\/strong>, removing a class of configuration errors that previously only surfaced at runtime.<\/p>\n\n\n\n Learn more on Number Input updates \u2192<\/a><\/p>\n\n\n\n A new Appearance<\/strong> property \u2014 with Transparent<\/strong>, Subtle<\/strong>, Underline<\/strong>, and Filled<\/strong> options \u2014 gives makers direct control over the visual style of the tab strip, covering the most common design patterns without custom workarounds. The Tab List also previously reordered items silently; it now preserves the order you define.<\/p>\n\n\n\n Learn more on Tab List updates \u2192<\/a><\/p>\n\n\n\n The Radio control now behaves consistently in the scenarios makers use it in most. Item order is preserved. DisplayMode.View<\/strong> renders as read-only rather than disabled. The control works correctly inside galleries \u2014 registering a selection no longer requires a double-click.<\/p>\n\n\n\n Learn more on Radio updates \u2192<\/a><\/p>\n\n\n\n The Link control now behaves as expected in the authoring experience. Wrap<\/strong> correctly controls text wrapping, and Alt+Click<\/strong> in the editor opens the link \u2014 consistent with how classic controls behave.<\/p>\n\n\n\n Learn more on Link updates \u2192<\/a><\/p>\n\n\n\n The content flyout now opens and expands correctly. Click reliability is improved. The AcceptsFocus<\/strong> property has been removed \u2014 the control now manages focus behavior automatically for accessibility.<\/p>\n\n\n\nWhat’s updated and why<\/h2>\n\n\n\n
Combo Box<\/strong><\/h4>\n\n\n\n
Date Picker<\/strong><\/h4>\n\n\n\n
Text Input<\/strong><\/h4>\n\n\n\n
Text<\/strong><\/h4>\n\n\n\n
Number Input<\/strong><\/h4>\n\n\n\n
Tab List<\/strong><\/h4>\n\n\n\n
Radio<\/strong><\/h4>\n\n\n\n
Link<\/strong><\/h4>\n\n\n\n
Info Button<\/strong><\/h4>\n\n\n\n