Contents
- 1 Information
- 1.1 Frame to Border
- 1.2 LayoutOptions with "...AndExpand"
- 1.3 GlyphLabel and Styles
- 1.4 SfTabView Virtualization
- 1.5 Swipe Menu Icons on Android
- 1.6 Color Style Changes
- 1.7 Strikethrough Converter
- 1.8 Button Disabled Trigger
- 1.9 TapGestureRecognizer Replacement
- 1.10 TapGestureRecognizer and Swipe Conflict
- 1.11 Navigation in UBIKChildItem
- 2 Recommended
- 2.1 Extract DataTemplates from UBIKThemes
- 2.2 VideoPlayer Adjustments
- 2.3 VideoPlayer Adjustments
- 2.4 VideoPlayer Adjustments
- 2.5 SearchBar Style Fix on iOS
- 2.6 Avoid Redundant ControlTemplate in DataTriggers
- 2.7 Replace TemplateBinding with Binding and Source
- 2.8 Remove TapGestureRecognizer from Main Item
- 2.9 Add Navigation Behavior in Child Area
- 3 Highly Recommended
- 4 Mandatory
- 4.1 Namespace conversion
- 4.2 Syncfusion control updates
- 4.3 Syncfusion control updates
- 4.4 Namespace conversion
- 4.5 Namespace conversion
- 4.6 TemplateService binding for extracted templates
- 4.7 TemplateService binding for extracted templates
- 4.8 OnPlatform and OnIdiom syntax changes
- 4.9 OnPlatform and OnIdiom syntax changes
- 4.10 OnPlatform and OnIdiom syntax changes
- 4.11 OnPlatform and OnIdiom syntax changes
- 4.12 OnPlatform and OnIdiom syntax changes
- 4.13 Syncfusion control updates
- 4.14 Remove default ControlTemplate in DataTriggers
- 4.15 Remove HeadlessLayout style
- 4.16 Additional mandatory rule
- 4.17 Rename SfPullToRefresh properties
- 4.18 Rename progress colors
- 5 SfTabView
- 6 OnPlatform + OnIdiom backup
Information
Frame to Border
Use Border instead of Frame. Frame is deprecated in MAUI. Use Border with `Stroke` instead of `BorderColor`.
Xamarin | MAUI |
---|---|
<Frame ... /> | <Border ... /> |
LayoutOptions with "...AndExpand"
Replace "...AndExpand" with Grid layout. Horizontal/VerticalOptions ending in "...AndExpand" are deprecated. Use Grid with `ColumnDefinition Width="*"` for expansion.
GlyphLabel and Styles
Use Label with new styles. Custom controls like `GlyphLabel` are no longer needed. Use `Label` with styles like `UBIKSymbolText`.
Xamarin | MAUI |
---|---|
controls:GlyphLabel | Label with UBIKSymbolText style |
SfTabView Virtualization
Enable virtualization. Add `EnableVirtualization="True"` to all SfTabView instances or styles.
Swipe Menu Icons on Android
Refactor swipe templates and label styles. Icons in swipe menus were truncated on Android. Fixed via refactoring.
Color Style Changes
Dark theme adjustments. Changes to color styles may affect appearance. Review usage of `UBIKDarkThemeColor`, `UBIKDarkTextColor`, etc.
Strikethrough Converter
Use `TextDecorations="Strikethrough"` instead of converter.
Xamarin | MAUI |
---|---|
Text="{Binding ..., Converter={StaticResource StrikethroughConverter}}" | Text="{Binding ...}" TextDecorations="Strikethrough" |
Button Disabled Trigger
Add trigger for disabled buttons. Maui buttons don’t visually change when disabled. Add trigger to style.
TapGestureRecognizer Replacement
Use TappedBehavior instead. TapGestureRecognizer now intercepts taps. Use `TappedBehavior` to avoid conflicts.
Xamarin | MAUI |
---|---|
<... .GestureRecognizers><TapGestureRecognizer Command="{Binding ...}" /></... .GestureRecognizers> | <... .Behaviors><behaviors:TappedBehavior><behaviors:InvokeCommandAction Command="{Binding ...}" /></behaviors:TappedBehavior></... .Behaviors> |
TapGestureRecognizer and Swipe Conflict
Remove TapGestureRecognizer from root Grid. TapGestureRecognizer blocks swipe behavior. Remove it and adapt parent list to trigger navigation.
Use EventHandlerBehavior for navigation.
Xamarin | MAUI |
---|---|
[none] | <controls:SfListViewExt.Behaviors><behaviors:EventHandlerBehavior EventName="ItemTapped"><behaviors:InvokeCommandAction Command="{Binding AppStatus.RootList.Items[0].NavigateToChildrenCommand}" /></behaviors:EventHandlerBehavior></controls:SfListViewExt.Behaviors> |
Recommended
Extract DataTemplates from UBIKThemes
Create separate .xamlx files for the following DataTemplates. It's not so easy about the namespaces:
- In our default templates, it's enough to add the following ones to every new separate .xamlx files at the beginning;
* xmlns:ctrls="clr-namespace:UBIK.MAUI.Controls;assembly=UBIK.MAUI"; * xmlns:platform="clr-namespace:UBIK.MAUI.Platform.Renderers;assembly=UBIK.MAUI"; * xmlns:resources="clr-namespace:UBIK.MAUI.Resources;assembly=UBIK.MAUI"; * xmlns:services="clr-namespace:UBIK.MAUI.Services;assembly=UBIK.MAUI"; * xmlns:uiservices="clr-namespace:UBIK.UI.Services;assembly=UBIK.UI".
- But we don't know if other namespaces might be used in the custom templates. So it might be necessary to really analyze the namespaces used and find/copy them from the UBIKThemes file.
Templates | ||
---|---|---|
UBIKMainItem | UBIKChildItem | UBIKTaskItem |
UBIKTaskProperty | UBIKTaskPropertyString | UBIKTaskPropertyDouble |
UBIKTaskPropertyInt | UBIKTaskPropertyNumeric | UBIKTaskPropertyDateTime |
UBIKTaskPropertyGeoData | UBIKTaskPropertyBool | UBIKTaskPropertyPopup |
UBIKTaskPropertyList | UBIKTaskPropertyGuid | UBIKPropertyItem |
UBIKPropertyTextLengthHint | UBIKPropertyDirectEditButtons | UBIKTaskPropertyEditButtons |
UBIKPropertyDirectItemString | UBIKPropertyDirectItemDouble | UBIKPropertyDirectItemInt |
UBIKPropertyDirectItemMinMax | UBIKPropertyDirectItemNumeric | UBIKPropertyDirectItemDateTime |
UBIKPropertyDirectItemGeoData | UBIKPropertyDirectItemBool | UBIKPropertyDirectItemPopup |
UBIKPropertyDirectItemList | UBIKPropertyDirectItemGuid | UBIKDocumentItem |
UBIKSearchResultItem | UBIKDefaultHotSpot | UBIKAngularLinkHotSpot |
UBIKRoundLinkHotSpot | UBIKInputHotSpot | UBIKSignatureHotSpot |
UBIKObjectHotSpot | UBIKMediaHotSpot |
VideoPlayer Adjustments
This property is repsonsible for the video player regarding how or if it should get scaled up depending on the value of the Aspect property
Xamarin | MAUI |
---|---|
VideoPlayer... |
VideoPlayer Aspect="AspectFit" |
VideoPlayer Adjustments
The UriToVideoSourceConverter is no longer needed because the conversion of the VideoSource gets done by the MediaElement itself. It is marked as obsolete and should therefore no longer be used.
Xamarin | MAUI |
---|---|
<controls:VideoPlayer... Source="{Binding DocumentViewModel.LocalURI, Converter={StaticResource UriToVideoSource}}"/> |
<controls:VideoPlayer... Source="{Binding DocumentViewModel.LocalURI}"/> |
VideoPlayer Adjustments
The StopTimer property is obsolete and no longer needed because the MediaElement behind does the Stop of the VideoPlayer by itself.
Xamarin | MAUI |
---|---|
<controls:VideoPlayer... StopTimer="{Binding Unloaded}" /> |
<controls:VideoPlayer... /> |
SearchBar Style Fix on iOS
On iOS, defining a transparent background for the SearchBar control results in a black text on black background appearance.
Xamarin | MAUI |
---|---|
[issue on iOS only] UBIKThemes: SearchBar style: <Setter Property="BackgroundColor" Value="Transparent" /> |
Delete this setter |
Avoid Redundant ControlTemplate in DataTriggers
This is about finding ControlTemplates that are set in DataTriggers in customized Xamls. When the same template is already set as a ContentView default ControlTemplate, it is recommended to remove the default ControlTemplate on the ContentView. For a detailed description please refer to sheet "Mandatory" in cell 27A-27C. Behavior that might occur if it remains unchanged: Property editor might not open on Android.
Xamarin | MAUI |
---|---|
<ContentView x:Name="containerName" ControlTemplate="{StaticResource YourTemplate1}"> <ContentView.Triggers> <DataTrigger Binding="{Binding Source={x:Reference containerName}, Path=...}" TargetType="ContentView" Value="true"> <Setter Property="ControlTemplate" Value="{StaticResource YourTemplate1}" /> </DataTrigger> ... </ContentView.Triggers> </ContentView> |
<ContentView x:Name="containerName"> <ContentView.Triggers> <DataTrigger Binding="{Binding Source={x:Reference containerName}, Path=...}" TargetType="ContentView" Value="true"> <Setter Property="ControlTemplate" Value="{StaticResource YourTemplate1}" /> </DataTrigger> ... </ContentView.Triggers> </ContentView> |
Replace TemplateBinding with Binding and Source
This is about finding SfListViewExt controls in customizings, and if there are TemplateBindings used, it's recommended to replace them with Binding, and the Source reference should be added. For a detailed description please refer to sheet "Mandatory" in cell 26A-26C. Behavior that might occur if it remains unchanged: Pre-selected item might appear unselected.
Xamarin | MAUI |
---|---|
<ContentView ... x:Name="YourContentViewName"> <ContentView.Resources> <ResourceDictionary> ... <ControlTemplate x:Key="YourTemplateKey"> <ctrls:SfListViewExt ItemsSource="{TemplateBinding BindingContext.YourBinding, ...}" SelectedItem="{TemplateBinding BindingContext.YourBinding, ...}" ... /> </ControlTemplate> ... </ResourceDictionary> </ContentView.Resources> ... </ContentView> |
<ContentView ... x:Name="YourContentViewName"> <ContentView.Resources> <ResourceDictionary> ... <ControlTemplate x:Key="YourTemplateKey"> <ctrls:SfListViewExt ItemsSource="{Binding BindingContext.YourBinding, Source={x:Reference YourContentViewName}, ...}" SelectedItem="{Binding BindingContext.YourBinding, Source={x:Reference YourContentViewName}, ...}" ... /> </ControlTemplate> ... </ResourceDictionary> </ContentView.Resources> ... </ContentView> |
Remove TapGestureRecognizer from Main Item
Swiping on the Main items was broken by Maui (Documented in Information). The workaround is to remove the TapGestureRecognizer from UBIKMainItem, and add ListView-based navigation similar to that found in UBIKChildArea (with an extended binding path for technical reasons).
Xamarin | MAUI |
---|---|
(In UBIKMainItem) <Grid.GestureRecognizers> <TapGestureRecognizer Command="{Binding NavigateToChildrenCommand}" /> </Grid.GestureRecognizers> |
[nothing] |
Xamarin | MAUI |
---|---|
(In UBIKChildArea) [nothing] |
<controls:SfListViewExt.Behaviors> <behaviors:EventHandlerBehavior EventName="ItemTapped"> <behaviors:InvokeCommandAction Command="{Binding AppStatus.RootList.Items[0].NavigateToChildrenCommand}" /> </behaviors:EventHandlerBehavior> </controls:SfListViewExt.Behaviors> |
Highly Recommended
CircularImage to AvatarView
Use AvatarView instead of CircularImage. CircularImage and its wrapping Frame are no longer needed. Use AvatarView from the MAUI Community Toolkit. Add the namespace:
Xamarin | MAUI |
---|---|
<Frame><CircularImage Source="..." /></Frame> | <toolkit:AvatarView ImageSource="..." BorderWidth="..." BackgroundColor="..." /> |
GlyphSize to FontSize and Alignment
Use FontSize and alignment properties instead of GlyphSize. The GlyphSize property is obsolete. Use FontSize and add alignment properties for better layout.
Xamarin | MAUI |
---|---|
<Setter Property="GlyphSize" Value="13.0" /> | <Setter Property="FontSize" Value="16" /> <Setter Property="VerticalOptions" Value="Center" /> <Setter Property="HorizontalOptions" Value="Center" /> <Setter Property="VerticalTextAlignment" Value="Center" /> <Setter Property="HorizontalTextAlignment" Value="Center" /> |
StaticResource to DynamicResource
Use DynamicResource and BaseResourceKey. For dynamic theming, use DynamicResource instead of StaticResource. When inheriting styles, use BaseResourceKey.
Xamarin | MAUI |
---|---|
BasedOn="{StaticResource SomeStyle}" Style="{StaticResource SomeStyle}" |
BaseResourceKey="SomeStyle" Style="{DynamicResource SomeStyle}" |
Mandatory
Namespace conversion
Update all namespaces to MAUI equivalents. All `xmlns` and `clr-namespace` declarations must be updated to their MAUI counterparts.
Xamarin | MAUI |
---|---|
xmlns="http://xamarin.com/schemas/2014/forms" | xmlns="http://schemas.microsoft.com/dotnet/2021/maui" |
clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core | clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;assembly=Microsoft.Maui.Controls |
clr-namespace:UBIK.CPL.Behaviors;assembly=UBIK.CPL | clr-namespace:UBIK.MAUI.Behaviors;assembly=UBIK.MAUI |
clr-namespace:UBIK.CPL.Classes;assembly=UBIK.CPL | clr-namespace:UBIK.MAUI.Classes;assembly=UBIK.MAUI |
clr-namespace:UBIK.CPL.Controls;assembly=UBIK.CPL | clr-namespace:UBIK.MAUI.Controls;assembly=UBIK.MAUI |
clr-namespace:UBIK.CPL.Converters;assembly=UBIK.CPL | clr-namespace:UBIK.MAUI.Converters;assembly=UBIK.MAUI |
clr-namespace:UBIK.CPL.Platform.Renderers;assembly=UBIK.CPL | clr-namespace:UBIK.MAUI.Platform.Controls;assembly=UBIK.MAUI |
clr-namespace:UBIK.CPL.Services;assembly=UBIK.CPL | clr-namespace:UBIK.MAUI.Services;assembly=UBIK.MAUI |
clr-namespace:UBIK.CPL.Resources;assembly=UBIK.CPL | clr-namespace:UBIK.MAUI.Resources;assembly=UBIK.MAUI |
clr-namespace:UBIK.Scanning.Forms;assembly=UBIK.Scanning.Forms | clr-namespace:UBIK.MAUI.Controls.ZXingScanner;assembly=UBIK.MAUI |
clr-namespace:Syncfusion.SfPullToRefresh.XForms;assembly=Syncfusion.SfPullToRefresh.XForms | clr-namespace:Syncfusion.Maui.Toolkit.PullToRefresh;assembly=Syncfusion.Maui.Toolkit |
clr-namespace:Syncfusion.XForms.TabView;assembly=Syncfusion.SfTabView.Xforms | clr-namespace:Syncfusion.Maui.Toolkit.TabView;assembly=Syncfusion.Maui.Toolkit |
clr-namespace:Syncfusion.ListView.XForms;assembly=Syncfusion.SfListView.XForms | clr-namespace:Syncfusion.Maui.ListView;assembly=Syncfusion.Maui.ListView |
clr-namespace:Syncfusion.XForms.TreeView;assembly=Syncfusion.SfTreeView.XForms | clr-namespace:Syncfusion.Maui.TreeView;assembly=Syncfusion.Maui.TreeView |
clr-namespace:Syncfusion.XForms.TextInputLayout;assembly=Syncfusion.Core.XForms | clr-namespace:Syncfusion.Maui.Core;assembly=Syncfusion.Maui.Core |
Syncfusion control updates
There are some other properties that have changed their names on SfListView/SfListViewExt. We don't use them in our standard XAMLs. But if you use them in customizings, please refer to https://help.syncfusion.com/maui/listview/migration for the complete list.
Xamarin | MAUI |
---|---|
SfListViewExt: * ItemHolding |
ItemLongPress |
Syncfusion control updates
Xamarin | MAUI |
---|---|
* LeftSwipeTemplate, RightSwipeTemplate | StartSwipeTemplate, EndSwipeTemplate |
Namespace conversion
Xamarin | MAUI |
---|---|
* <sync:SfListView.LayoutManager> |
<sync:SfListView.ItemsLayout> |
Namespace conversion
1. We need to add the following namespace where the changes are applied: xmlns:services="clr-namespace:UBIK.MAUI.Services;assembly=UBIK.MAUI"; 2. We need to search for both "StaticResource" and "DynamicResource"; 3. We only listed some examples here. But the same rule applies to all those templates exacted from UBIKThemes (see those under the "Recommended" sheet's A2 cell).
Xamarin | MAUI |
---|---|
{StaticResource UBIKChildItem} | {Binding [UBIKChildItem], Source={x:Static services:TemplateService.Instance}} |
TemplateService binding for extracted templates
Xamarin | MAUI |
---|---|
{StaticResource UBIKDocumentItem} | {Binding [UBIKDocumentItem], Source={x:Static services:TemplateService.Instance}} |
TemplateService binding for extracted templates
Xamarin | MAUI |
---|---|
{StaticResource UBIKMainItem} | {Binding [UBIKMainItem], Source={x:Static services:TemplateService.Instance}} |
OnPlatform and OnIdiom syntax changes
Xamarin | MAUI |
---|---|
... | ... |
OnPlatform and OnIdiom syntax changes
All code containing the OnPlatform functionality needs to be refactored as the syntax changed. It is recommended to use the inline syntax (see example) as a default wherever possible, but there are also other approaches. When using Bindings, Resources or other complex values in OnIdiom or OnPlatform values, it should only be used with the inline syntax. Please rely to the wiki for more details and possibilities (e.g. if the value contains multiple elements): https://wiki.augmensys.com/index.php?title=XAML_Tips#Platform_and_Device-specific_UI_with_OnPlatform_and_OnIdiom
Xamarin | MAUI |
---|---|
OnPlatform | <TheControl ... TheProperty="{OnPlatform Android=False, iOS=True}" /> <TheControl ... TheProperty="{OnPlatform Android={Binding ...}, iOS={Binding ...}}" /> |
OnPlatform and OnIdiom syntax changes
All code containing the OnIdiom functionality needs to be refactored as the syntax changed. It is recommended to use the inline syntax (see example) as a default wherever possible, but there are also other approaches like the multi-tag syntax. When using Bindings, Resources or other complex values in OnIdiom or OnPlatform values, it should only be used with the inline syntax. Please rely to the wiki for more infos: https://wiki.augmensys.com/index.php?title=XAML_Tips#Platform_and_Device-specific_UI_with_OnPlatform_and_OnIdiom
Xamarin | MAUI |
---|---|
OnIdiom | <TheControl ... TheProperty="{OnIdiom Phone=False, Desktop=True}" /> <TheControl ... TheProperty="{OnIdiom Desktop={Binding ...}, Phone={Binding ...}}" /> |
OnPlatform and OnIdiom syntax changes
In the scope of any OnPlatform/On Platform, WinPhone needs to be replaced with WinUI.
Xamarin | MAUI |
---|---|
WinPhone | WinUI |
OnPlatform and OnIdiom syntax changes
When using GridLength as a type (e.g. in ColumDefinition.Width or RowDefinition.Height) in OnIdiom or OnPlatform, it should only be used with the inline syntax. More infos see in the wiki: https://wiki.augmensys.com/index.php?title=XAML_Tips#Platform_and_Device-specific_UI_with_OnPlatform_and_OnIdiom
Xamarin | MAUI |
---|---|
e.g. <ColumnDefinition.Width> <OnIdiom ... Desktop="Auto" Phone="*" /> </ColumnDefinition.Width> or <RowDefinition.Height> <OnPlatform ... Android="Auto" iOS="*" /> </RowDefinition.Height> |
<ColumnDefinition Width="{OnIdiom Desktop='Auto', Phone='*'}" /> <RowDefinition Height="{OnPlatform Android='Auto', iOS='*'}" /> |
Syncfusion control updates
It is necessary to use the default Binding with the Source reference to the parent control instead of TemplateBinding when using a SfListViewExt ControlTemplate with selectable items in the ResourceDictionary to be set in the ContentView DataTrigger. Otherwise, the pre-selected items might not appear selected anymore according to our experience.
Affected standard Xamls are: - UBIKEditDouble - UBIKEditInt - UBIKEditString - UBIKEditMinMax (For the exact syntax please refer to our latest standard Xamls.)
If the above explained is also used in any custom Xamls, please consider changing it there, too.
However, the problem only seems to occur if there is TemplateBinding in the ItemsSource & SelectedItem property. But, for example, if the TemplateBinding is only in the BindingContext property of the SfListViewExt (like it is the case in the UBIKPropertyDirectEditListPopup), there seems to be no such problem and therefore no change is necessary.
Xamarin | MAUI |
---|---|
<ContentView ... x:Name="YourContentViewName"> <ContentView.Resources> <ResourceDictionary> ... <ControlTemplate x:Key="YourTemplateKey"> <ctrls:SfListViewExt ItemsSource="{TemplateBinding BindingContext.YourBinding, ...}" SelectedItem="{TemplateBinding BindingContext.YourBinding, ...}" ... /> </ControlTemplate> ... </ResourceDictionary> </ContentView.Resources> ... </ContentView> |
<ContentView ... x:Name="YourContentViewName"> <ContentView.Resources> <ResourceDictionary> ... <ControlTemplate x:Key="YourTemplateKey"> <ctrls:SfListViewExt ItemsSource="{Binding BindingContext.YourBinding, Source={x:Reference YourContentViewName}, ...}" SelectedItem="{Binding BindingContext.YourBinding, Source={x:Reference YourContentViewName}, ...}" ... /> </ControlTemplate> ... </ResourceDictionary> </ContentView.Resources> ... </ContentView> |
Remove default ControlTemplate in DataTriggers
To prevent an issue on Android where the direct edit Link to Object editor does not open, there is a change necessary in the UBIKPropertyDirectEditListPopup Xaml: The default ControlTemplate needs to be removed from the ContentView that contains the DataTriggers.
According to our experience, this issue only occurs to our UBIKPropertyDirectEditListPopup standard Xaml, but we can't guarantee that there is no such issue in customized Xamls. So please, if you encounter an issue on Android where a Property Editor doesn't open, report it the mobile development team, and/or try removing the default ControlTemplate from the affected control.
In our standard Xamls, we removed the default ControlTemplate in every ContentView that contains DataTriggers with ControlTemplates where the same template is already set in a DataTrigger. So please, also remove the default ControlTemplates it in the following Xamls if you use customized ones: - UBIKEditDouble - UBIKEditInt - UBIKEditString - UBIKEditMinMax (For the exact syntax please refer to our latest standard Xamls.)
If the above explained is also used in any of your other custom Xamls, please consider changing it there, too. Otherwise, some property editor might not open.
Xamarin | MAUI |
---|---|
<ContentView x:Name="containerName" ControlTemplate="{StaticResource YourTemplate}"> <ContentView.Triggers> <DataTrigger Binding="{Binding Source={x:Reference containerName}, Path=...}" TargetType="ContentView" Value="true"> <Setter Property="ControlTemplate" Value="{StaticResource YourTemplate}" /> </DataTrigger> ... </ContentView.Triggers> </ContentView> |
<ContentView x:Name="containerName"> <ContentView.Triggers> <DataTrigger Binding="{Binding Source={x:Reference containerName}, Path=...}" TargetType="ContentView" Value="true"> <Setter Property="ControlTemplate" Value="{StaticResource YourTemplate}" /> </DataTrigger> ... </ContentView.Triggers> </ContentView> |
Remove HeadlessLayout style
This Style has no longer any effect in MAUI and even degrades app performance. We are keeping it in our standard UBIKThemes under the Obsolete section to maintain backward compatibility.
Xamarin | MAUI |
---|---|
<Style x:Key="HeadlessLayout" TargetType="Layout"> <Setter Property="CompressedLayout.IsHeadless" Value="{OnPlatform False, Android=True}" /> </Style> |
Delete it from your custom UBIKThemes file |
Additional mandatory rule
In the customizings, however, it can and should be removed entirely, as it negatively affects performance, as mentioned before. To remove the style, you can simply use VS Code or any other editor with a search function and look through all custom .xaml files for usages of {StaticResource HeadlessLayout} or {DynamicResource HeadlessLayout}. These references should be removed from the respective elements or controls.
Xamarin | MAUI |
---|---|
<ContentView Grid.Column="2" ControlTemplate="{DynamicResource ChildCountBadge}" HorizontalOptions="Start" Style="{DynamicResource HeadlessLayout}" VerticalOptions="Start" /> |
<ContentView Grid.Column="2" ControlTemplate="{DynamicResource ChildCountBadge}" HorizontalOptions="Start" VerticalOptions="Start" /> |
Rename SfPullToRefresh properties
Renamed in Maui, however, currently these properties cause an issue and should not be included in customizings. SfPullToRefresh:
Xamarin | MAUI |
---|---|
RefreshContentHeight, RefreshContentWidth | RefreshViewHeight, RefreshViewWidth |
Rename progress colors
Renamed in Maui.
Xamarin | MAUI |
---|---|
ProgressBackgroundColor, ProgressStrokeColor | ProgressBackground, ProgressColor |