Xamarin.Forms 5.0.0.1558-pre3 (5.0.0 Pre Release 3) Release Notes

Getting Started | What's New | Breaking Changes | API Changes | Blogs | Thank you | Feedback | Open Source

Getting Ready for Xamarin.Forms 5

Xamarin.Forms 5 brings to stable release several new controls and features including App Themes (Dark Mode), Brushes, CarouselView, RadioButton, Shapes and Paths, and SwipeView.

RadioButton now supports setting any content and using control templates. You can start with simple text:

<StackLayout 
    RadioButtonGroup.GroupName="SimpleRadios"
    Orientation="Horizontal">
    <RadioButton Content="Day"/>
    <RadioButton Content="Week"/>
    <RadioButton Content="Month"/>
</StackLayout>

And add more complex UI to match your design needs:

<RadioButton 
    ControlTemplate="{StaticResource 
                        CalendarRadioTemplate}">
    <RadioButton.Content>
        <StackLayout 
            HorizontalOptions="Center" 
            VerticalOptions="Center">
            <Image
                Source="{FontImage FontFamily=FontAwesome, 
                        Glyph={x:Static local:IconFont.CalendarDay}, 
                        Color=#323130,Size=32}"/>
            <Label Text="Day" TextColor="#323130"/>
        </StackLayout>
    </RadioButton.Content>
</RadioButton>

The control template XAML is here.

RadioButtons image

As this is the first preview of a major version, we want to bring special attention to some of the changes introduced as well. As you look at upgrading your applications to Xamarin.Forms 5, there are some changes and removals to be aware of.

Please provide feedback on these changes as you update so we can help make this as smooth of a transition as possible.

Below is an itemized list:

Visual Studio 2017 No Longer Supported

Updates to Android and iOS are only delivered to Visual Studio 2019, and these are fundamental for getting the latest platform security fixes features required by Apple and Google. Before updating to Xamarin.Forms 5, install Visual Studio 2019.

MasterDetailPage Renamed

MasterDetailPage has been renamed to FlyoutPage. This change is in accordance with our values of diversity and inclusivity. We previously renamed our master branch on GitHub to main. The name also more closely reflects the behavior of the control. It is also in keeping with how we describe the behavior in Shell.

What should I do after upgrading?

This is a deprecation, so your app will work as before. To adopt this change, we recommend you rename MasterDetailPage in your projects to FlyoutPage. A few other types and property names have been updated as well including:

  • MasterDetailPage.Master changed to FlyoutPage.Flyout
  • MasterBehavior changed to FlyoutLayoutBehavior

UIWebView Removed

UIWebView has been completely removed. Since March, Apple has been warning that usage of this control was deprecated and apps would be rejected beginning later in the year. Since 4.x, we switched the default usage in Xamarin.Forms to WKWebView, and in 4.6, we made it possible to remove the UIWebView renderer to avoid Apple's review process from flagging apps as violating their policy. Still, third-party projects may still make use of UIWebView and trigger the violation. Now it is completely gone, and we recommend all libraries to make sure to switch to WKWebView as well.

What should I do after upgrading?

If you don't have a known need for UIWebView, then you don't need to do anything. For anyone else, the renderer code is available on GitHub to be copied into our application source.

C# UI, Expander, and MediaElement Moved

These experimental features have been (or will be soon) migrated to the Xamarin Community Toolkit which everyone should be taking full advantage of. It's a wonderful library of extremely useful Xamarin controls, effects, value converters, and more. In fact, it even has a native CameraView, Avatar view, and RangeSlider control. These features and controls are continuing to grow and improve, and while Xamarin.Forms moves into an extended stable release, we feel it's better for those to ship for now in the tookit. At a future time, they may be brought back into the core library.

As a "community" toolkit, it is being maintained and supported by a talented group of both community and Microsoft engineers. A big thanks to Steven Thewissen, Andrei Misuikevich, Javier Suarez Ruiz, and Gerald Versluis for all your hard work making this happen, as well as all those who have been contributing and reviewing.

If you're interested in learning more, check out GitHub and the project's Discord channel.

What should I do after upgrading?

If you have been using these features and controls, then add the latest Xamarin Community Toolkit to your project. After you resolve the new namespaces, your project should once again compile. Any time you update NuGets, you should do a full clean and build.

DataPages and Themes Packages Removed

In Xamarin.Forms 2, before joining Microsoft, we prototyped some interesting ways to build data driven UIs. These experiments were shipped as preview packages called DataPages and Themes. Since then, we have continued shipping the packages, but no work or customer interest has grown around them. Instead, features such as App Themes are much easier to use and implement dark and light mode, as well as general theme support using dynamic styles. As of Xamarin.Forms 5, we will no longer be building and shipping these packages.

What should I do after upgrading?

If you have the packages installed and are not using them, then you can safely remove them.

For themes related usage, migrate your implementation to using dynamic styles and AppThemeBinding.

For anything else, please contact us.

XFCorePostProcessor.Tasks Removed

This project injects IL to maintain XF 2.5 compatibility. We're far enough away from XF 2.5 now that this weaving should no longer be necessary.

What's New in this Release

Roadmap

Brushes

CarouselView

  • "[Core,iOS,Android] Remove experimental flags Carousel, Swipe, Shapes, Brush" (#12068)
  • GitHub #11081 - "[Bug] CarouselView should not animate an initial Position on Android" (#11173)
  • GitHub #12225 - "[Enhancement] Supporting VisualState of Items on SelectableItemsView" (#12281) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #8641 - "[Bug] CarouselView doesn't loop" (#9453)

CollectionView

  • "[Core,iOS,Android] Remove experimental flags Carousel, Swipe, Shapes, Brush" (#12068)
  • "Resolve Layout changes during native measure/arrange pass" (#12017) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #10454 - "[Bug] CollectionView ChildAdded" (#10812)
  • GitHub #11081 - "[Bug] CarouselView should not animate an initial Position on Android" (#11173)
  • GitHub #11794 - "[Bug] RefreshView with CollectionView child cannot contain GridItemsLayout with Span greater than 1 in combination with EmptyView on UWP" (#11913)
  • GitHub #11908 - "[Bug] [UWP] ItemsViewRenderer doesn't clean up CollectionViewSource correctly" (#11919)
  • GitHub #12225 - "[Enhancement] Supporting VisualState of Items on SelectableItemsView" (#12281) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #8641 - "[Bug] CarouselView doesn't loop" (#9453)
  • GitHub #9088 - "[Bug] SwipeView items conflict with Shell menu swipe in from left, on real iOS devices" (#9144)

Dark Mode/App Themes

Dual Screen

  • "Remove Compact Window from Dual Screen APIs" (#12093)

Maps

  • GitHub #9088 - "[Bug] SwipeView items conflict with Shell menu swipe in from left, on real iOS devices" (#9144)

Shapes

  • GitHub #11151 - "[Enhancement] Support corner radius on RectangleGeometry" (#11851)
  • GitHub #11190 - "[Bug] Shapes: ArcSegment throwing on iOS, doing nothing on Android" (#11195)
  • GitHub #11413 - "[Bug] Rectangle shape - Incorrect rendering/crash (depending on platform)" (#11418)
  • GitHub #11858 - "Ellipse is not antialised" (#11874)
  • GitHub #12081 - "[Bug] Line doesn't draw on iOS 14" (#12109) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #12082 - "[Bug] Path doesn't draw on iOS 14" (#12109) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #12083 - "[Bug] Polyline doesn't draw on iOS 14" (#12109) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #12285 - "[Bug][Shapes] RoundRectangleGeometry clipping error" (#12286) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))

Shell

  • "[Core,iOS,Android] Remove experimental flags Carousel, Swipe, Shapes, Brush" (#12068)
  • "[Tizen] Enhances the shell renderer" (#12119)
  • "Adds Shell Flyout Footer Template" (#6432) (added in 5.0.0.1558-pre3 (5.0.0 Pre Release 3))
  • "Fix flyout render quirks" (#12129) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • "When popping multiple pages remove middle pages first" (#12331) (added in 5.0.0.1558-pre3 (5.0.0 Pre Release 3))
  • GitHub #10377 - "[Bug] RefreshView not showing ActivityIndicator on page appearing with XF Shell " (#11339)
  • GitHub #10638 - "[Bug] Shell.Current.GoToAsync("..", true) has no animation like Shell.Current.Navigation.PopAsync()" (#12039)
  • GitHub #10729 - "[Enhancement] Provide an easy way to get the Current Page at Shell" (#10979)
  • GitHub #10899 - "[Bug] [Shell] Navigation URL parameter not correctly encoded/decoded" (#12186) (added in 5.0.0.1558-pre3 (5.0.0 Pre Release 3))
  • GitHub #11894 - "[Bug] SearchHandler.Focused / Unfocused event was not delivered" (#11895)
  • GitHub #12018 - "[Bug] FlyoutBackdrop does not work correctly on UWP" (#12099) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #1989 - "Disappearing ActivityIndicators in TableView on iOS" (#11339)
  • GitHub #6966 - "[Bug] Text binding on MenuItem does not bind on iOS" (#11987)
  • GitHub #8527 - "[Bug] Fix the Shell story when running on iPad in multi task mode" (#12097)
  • GitHub #8881 - "[Bug] Shell Flyout - Weird line at the bottom of the items in iOS" (#9429)
  • GitHub #9088 - "[Bug] SwipeView items conflict with Shell menu swipe in from left, on real iOS devices" (#9144)
  • GitHub #9205 - "[Bug] Shell MenuItem Text Binding values not updated on Android" (#11987)

SwipeView

  • GitHub #10679 - "[Bug] SwipeView crash with NullReferenceException" (#10682)
  • GitHub #11209 - "[Bug] [iOS][SwipeView] Swipe view not handling tap gesture events until swiped" (#11217)
  • GitHub #11286 - "[Bug] SwipeItem clicked event not working" (#11298)
  • GitHub #11314 - "Cannot swipe the swipeview inside a Listview[Bug] " (#11358)
  • GitHub #11333 - "[Bug] SwipeView does not work on Android if child has TapGestureRecognizer" (#11340)
  • GitHub #11737 - "[Bug] SwipeView Closes After Command Executes Despite SwipeBehaviorOnInvoked="RemainOpen" (iOS)" (#11762)
  • GitHub #11831 - "[Bug] SwipeView removes Frame borders on Android" (#11947) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #8941 - "[Bug] [SwipeView] Changing SwipeMode changes the width of the SwipeItem" (#9574)
  • GitHub #8974 - "[Enhancement] [SwipeView] Allow tolerance and swipe length to be set for the swipe action" (#9574)
  • GitHub #9088 - "[Bug] SwipeView items conflict with Shell menu swipe in from left, on real iOS devices" (#9144)

Visual

  • "[Tizen] Enhances the shell renderer" (#12119)
  • "[Tizen] Update Tizen.NET.MaterialComponents" (#12282) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • "Duo SDK memory leak and Performance fixes" (#11837)
  • "Update to C# 8.0" (#12115) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #9088 - "[Bug] SwipeView items conflict with Shell menu swipe in from left, on real iOS devices" (#9144)

Other Enhancements

  • "[X] Xaml BindingDiagnostics" (#10523) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • "Easing type converter" (#11601)
  • GitHub #8279 - "[Feature requested] ListView do not ScrollTo a group when there is no child of this group." (#8310)
  • GitHub #8405 - "[Enhancement] Allow everyone access to the WeakEventManager class" (#12063)

Features in Preview

Current experimental flags

Are you on the cutting edge? Try out ALL of our experimental features now using these flags! Read more about experimental flags.

  • Shell_UWP_Experimental

UWP Shell

Try it with Forms.SetFlags("Shell_UWP_Experimental");
  • "[Core,iOS,Android] Remove experimental flags Carousel, Swipe, Shapes, Brush" (#12068)
  • "Adds Shell Flyout Footer Template" (#6432) (added in 5.0.0.1558-pre3 (5.0.0 Pre Release 3))
  • "Fix flyout render quirks" (#12129) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #12018 - "[Bug] FlyoutBackdrop does not work correctly on UWP" (#12099) (added in 5.0.0.1539-pre2 (5.0.0 Pre Release 2))
  • GitHub #9088 - "[Bug] SwipeView items conflict with Shell menu swipe in from left, on real iOS devices" (#9144)

Release History

  • Wednesday, October 14, 2020 - Xamarin.Forms 5.0.0.1558-pre3 (5.0.0 Pre Release 3)
  • Wednesday, October 7, 2020 - Xamarin.Forms 5.0.0.1539-pre2 (5.0.0 Pre Release 2)
  • Wednesday, September 23, 2020 - Xamarin.Forms 5.0.0.1487-pre1 (5.0.0 Pre Release 1)

Wednesday, October 14, 2020 - Xamarin.Forms 5.0.0.1558-pre3 (5.0.0 Pre Release 3)

Issues Fixed

Additional fixes included in this release

  • "[C] INamescope.UnregisterName (#12410)" (#12410)
  • "Automated dotnet-format update (#12403)" (#12403)
  • "Fix layout cycle in ViewToRendererConverter" (#12365)
  • "Fix WPF RadioButton crash tapping the control (#12408)" (#12408)
  • "Make OnPlatform helpers public" (#12278)
  • "When popping multiple pages remove middle pages first" (#12331)

Wednesday, October 7, 2020 - Xamarin.Forms 5.0.0.1539-pre2 (5.0.0 Pre Release 2)

Issues Fixed

Additional fixes included in this release

  • "[Tizen] Fix the DisplayActionSheet" (#12188)
  • "[Tizen] Update Tizen.NET.MaterialComponents" (#12282)
  • "Add protected Accessor to VisualElement Constructor" (#12125)
  • "Fix flyout render quirks" (#12129)
  • "Pin 4.8.0 Xcode" (#12213)
  • "Removed RadioButton Experimental flag" (#12322)
  • "Resolve Layout changes during native measure/arrange pass" (#12017)
  • "Update to C# 8.0" (#12115)

Wednesday, September 23, 2020 - Xamarin.Forms 5.0.0.1487-pre1 (5.0.0 Pre Release 1)

Issues Fixed

Additional fixes included in this release

  • "[Build] Update sigining" (#11901)
  • "[Core,iOS,Android] Remove experimental flags Carousel, Swipe, Shapes, Brush" (#12068)
  • "[Core] Add an overload for async ImageSource" (#11906)
  • "[Housekeeping] More cleanup" (#11999)
  • "[Tizen] Adds the DisplayResolutionUnit" (#12074)
  • "[Tizen] Enhances the EntryRenderer" (#11978)
  • "[Tizen] Enhances the shell renderer" (#12119)
  • "[Tizen] Fix Assembly registration issue" (#12130)
  • "[Tizen] Fixed getting the device type" (#12133)
  • "[Tizen] Update profile unified font size scaling" (#11979)
  • "[WPF] Fix FormsPanel MeasureOverride negative requested size" (#10653)
  • "[X] Add a TrySetPropertyValue overload for HR" (#12043)
  • "[xamlc] add a new ResourceLoader.IsEnabled check" (#11754)
  • "[xamlc] fix duplicate Mono.Cecil search paths" (#12030)
  • "Add compliance" (#11612)
  • "Bump UWP to 19041" (#11940)
  • "Duo SDK memory leak and Performance fixes" (#11837)
  • "EasingDesignTypeConverter" (#11697)
  • "Make CancelAnimations an extension method" (#11884)
  • "Make Frames with Labels work in ListViews again" (#11976)
  • "Reinstate loading of local HTML files in WKWebViewRenderer" (#12029)
  • "Remove Compact Window from Dual Screen APIs" (#12093)
  • "Templated RadioButtons and RadioButtonGroups" (#11628)

Breaking Changes

Namespace Xamarin.Forms

Type Changed: Xamarin.Forms.CarouselView

Removed method:

public static void VerifyCarouselViewFlagEnabled (string constructorHint, string memberName);

Type Changed: Xamarin.Forms.DropGestureRecognizer

Removed method:

public System.Threading.Tasks.Task SendDrop (DropEventArgs args, VisualElement element);

Type Changed: Xamarin.Forms.MasterDetailPage

Modified base type:

-Xamarin.Forms.Page
+Xamarin.Forms.FlyoutPage

Removed interface:

Xamarin.Forms.IElementConfiguration<MasterDetailPage>

Removed fields:

public static BindableProperty IsGestureEnabledProperty;
public static BindableProperty IsPresentedProperty;

Removed properties:

public bool CanChangeIsPresented { get; set; }
public Page Detail { get; set; }
public Rectangle DetailBounds { get; set; }
public bool IsGestureEnabled { get; set; }
public bool IsPresented { get; set; }
public bool ShouldShowSplitMode { get; }

Removed events:

public event System.EventHandler<BackButtonPressedEventArgs> BackButtonPressed;
public event System.EventHandler IsPresentedChanged;

Removed methods:

public virtual bool ShouldShowToolbarButton ();

Type Changed: Xamarin.Forms.RadioButton

Modified base type:

-Xamarin.Forms.Button
+Xamarin.Forms.TemplatedView

Removed interfaces:

IButtonController
Xamarin.Forms.IElementConfiguration<Button>
IImageController
IImageElement

Removed field:

public static const string IsCheckedVisualState = "IsChecked";

Type Changed: Xamarin.Forms.SwipeView

Removed method:

public static void VerifySwipeViewFlagEnabled (string constructorHint, string memberName);

Type Changed: Xamarin.Forms.ViewExtensions

Modified methods:

 public void CancelAnimations (---this ---VisualElement view)

Removed Type Xamarin.Forms.Expander

Removed Type Xamarin.Forms.ExpanderState

Removed Type Xamarin.Forms.FileMediaSource

Removed Type Xamarin.Forms.FileMediaSourceConverter

Removed Type Xamarin.Forms.IMediaElementController

Removed Type Xamarin.Forms.MediaElement

Removed Type Xamarin.Forms.MediaElementState

Removed Type Xamarin.Forms.MediaSource

Removed Type Xamarin.Forms.MediaSourceConverter

Removed Type Xamarin.Forms.SeekRequested

Removed Type Xamarin.Forms.StateRequested

Removed Type Xamarin.Forms.UriMediaSource

Namespace Xamarin.Forms.PlatformConfiguration.TizenSpecific

Removed Type Xamarin.Forms.PlatformConfiguration.TizenSpecific.BufferingProgressUpdatedEventArgs

Removed Type Xamarin.Forms.PlatformConfiguration.TizenSpecific.DisplayAspectMode

Removed Type Xamarin.Forms.PlatformConfiguration.TizenSpecific.IMediaPlayer

Removed Type Xamarin.Forms.PlatformConfiguration.TizenSpecific.IPlatformMediaPlayer

Removed Type Xamarin.Forms.PlatformConfiguration.TizenSpecific.IVideoOutput

Removed Type Xamarin.Forms.PlatformConfiguration.TizenSpecific.PlaybackState

Removed Type Xamarin.Forms.PlatformConfiguration.TizenSpecific.VideoOuputType

Namespace Xamarin.Forms.Platform.Android

Type Changed: Xamarin.Forms.Platform.Android.CarouselViewRenderer

Removed field:

protected Xamarin.Forms.CarouselView Carousel;

Type Changed: Xamarin.Forms.Platform.Android.RadioButtonRenderer

Removed interfaces:

Android.Views.View.IOnAttachStateChangeListener
Android.Views.View.IOnClickListener
Android.Views.View.IOnTouchListener
IButtonLayoutRenderer

Modified properties:

-protected Xamarin.Forms.Button Element { get; set; }
+protected Xamarin.Forms.RadioButton Element { get; +++set;+++ }

Removed methods:

protected virtual void OnElementChanged (Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Xamarin.Forms.Button> e);
protected override void OnLayout (bool changed, int l, int t, int r, int b);

Type Changed: Xamarin.Forms.Platform.Android.ResourceManager

Modified methods:

-public void Init (System.Reflection.Assembly masterAssembly)
+public void Init (System.Reflection.Assembly mainAssembly)

Type Changed: Xamarin.Forms.Platform.Android.ViewExtensions

Removed method:

public static void SetClipToOutline (this Android.Views.View view, bool value, Xamarin.Forms.VisualElement element);

Removed Type Xamarin.Forms.Platform.Android.MediaElementRenderer

Namespace Xamarin.Forms.Platform.Android.AppCompat

Type Changed: Xamarin.Forms.Platform.Android.AppCompat.MasterDetailPageRenderer

Modified base type:

-AndroidX.DrawerLayout.Widget.DrawerLayout
+Xamarin.Forms.Platform.Android.FlyoutPageRenderer

Removed methods:

protected override void Dispose (bool disposing);
protected override void OnAttachedToWindow ();
protected override void OnDetachedFromWindow ();
protected virtual void OnElementChanged (Xamarin.Forms.VisualElement oldElement, Xamarin.Forms.VisualElement newElement);
protected override void OnLayout (bool changed, int l, int t, int r, int b);
protected virtual void SetAutomationId (string id);
protected virtual void SetContentDescription ();

Namespace Xamarin.Forms.Platform.Tizen

Type Changed: Xamarin.Forms.Platform.Tizen.INavigationView

Modified properties:

-public abstract ElmSharp.EvasObject Header { get; set; }
+public abstract Xamarin.Forms.View Header { get; set; }

Type Changed: Xamarin.Forms.Platform.Tizen.IShellTabs

Removed properties:

public ElmSharp.EvasObject TargetView { get; }
public ShellTabsType Type { get; set; }

Type Changed: Xamarin.Forms.Platform.Tizen.NavigationDrawer

Modified base type:

-Xamarin.Forms.Platform.Tizen.Native.Box
+ElmSharp.Box

Removed property:

public bool IsLock { get; set; }

Type Changed: Xamarin.Forms.Platform.Tizen.NavigationView

Removed constructor:

public NavigationView (ElmSharp.EvasObject parent);

Modified properties:

-public virtual final ElmSharp.EvasObject Header { get; set; }
+public virtual final Xamarin.Forms.View Header { get; set; }

Type Changed: Xamarin.Forms.Platform.Tizen.ShellItemRenderer

Removed constructor:

public ShellItemRenderer (IFlyoutController flyoutController, Xamarin.Forms.ShellItem item);

Removed properties:

public ElmSharp.Color BackgroundColor { get; set; }
public Native.Box Control { get; }

Removed methods:

protected virtual ShellSectionNavigation CreateShellSectionNavigation (IFlyoutController flyoutController, Xamarin.Forms.ShellSection section);
public void SetCurrentItem (Xamarin.Forms.ShellSection section);
public void UpdateCurrentItem (Xamarin.Forms.ShellSection section);

Type Changed: Xamarin.Forms.Platform.Tizen.ShellMoreToolbar

Removed constructor:

public ShellMoreToolbar (ShellItemRenderer renderer);

Removed property:

public int Height { get; }

Removed methods:

public Xamarin.Forms.ShellSection RemoveFirst ();
public void RemoveItem (Xamarin.Forms.ShellSection section);

Type Changed: Xamarin.Forms.Platform.Tizen.ShellNavBar

Modified base type:

-Xamarin.Forms.Platform.Tizen.Native.Box
+ElmSharp.Box

Removed constructor:

public ShellNavBar (IFlyoutController flyoutController);

Type Changed: Xamarin.Forms.Platform.Tizen.ShellRenderer

Removed methods:

protected virtual ShellItemRenderer CreateShellItem (Xamarin.Forms.ShellItem item);

Type Changed: Xamarin.Forms.Platform.Tizen.ShellSectionRenderer

Removed properties:

public ElmSharp.Color BackgroundColor { get; set; }
public Native.Box Control { get; }
public ElmSharp.Color ForegroundColor { get; set; }

Type Changed: Xamarin.Forms.Platform.Tizen.ShellTabs

Removed properties:

public ElmSharp.EvasObject TargetView { get; }
public ShellTabsType Type { get; set; }

Type Changed: Xamarin.Forms.Platform.Tizen.ThemeConstants

Type Changed: Xamarin.Forms.Platform.Tizen.ThemeConstants.Button.Styles.Common.Shell.Resources.Shell

Type Changed: Xamarin.Forms.Platform.Tizen.ThemeConstants.Button.Styles.Common.Shell.Resources.Resources

Modified fields:

-public const string BackIcon = "Xamarin.Forms.Platform.Tizen.Resource.arrow_left.png";
+public const string BackIcon = "Resource.arrow_left.png";
-public const string DotsIcon = "Xamarin.Forms.Platform.Tizen.Resource.dots_horizontal.png";
+public const string DotsIcon = "Resource.dots_horizontal.png";
-public const string MenuIcon = "Xamarin.Forms.Platform.Tizen.Resource.menu.png";
+public const string MenuIcon = "Resource.menu.png";

Removed Type Xamarin.Forms.Platform.Tizen.ThemeConstants.Button.Styles.Common.Shell.Resources.CollectionView

Removed Type Xamarin.Forms.Platform.Tizen.AspectToDisplayAspectModeConverter

Removed Type Xamarin.Forms.Platform.Tizen.Group

Removed Type Xamarin.Forms.Platform.Tizen.IMediaViewProvider

Removed Type Xamarin.Forms.Platform.Tizen.Item

Removed Type Xamarin.Forms.Platform.Tizen.MediaElementExtension

Removed Type Xamarin.Forms.Platform.Tizen.MediaElementRenderer

Removed Type Xamarin.Forms.Platform.Tizen.ShellSectionNavigation

Namespace Xamarin.Forms.Platform.Tizen.Native

Type Changed: Xamarin.Forms.Platform.Tizen.Native.ViewHolder

Removed event:

public event System.EventHandler Selected;

Removed method:

protected void SendSelected ();

Removed Type Xamarin.Forms.Platform.Tizen.Native.EmbeddingControls

Removed Type Xamarin.Forms.Platform.Tizen.Native.LayoutCanvas

Removed Type Xamarin.Forms.Platform.Tizen.Native.MasterDetailPage

Removed Type Xamarin.Forms.Platform.Tizen.Native.MediaPlayer

Removed Type Xamarin.Forms.Platform.Tizen.Native.MediaPlayerImpl

Removed Type Xamarin.Forms.Platform.Tizen.Native.MillisecondToTextConverter

Removed Type Xamarin.Forms.Platform.Tizen.Native.ProgressToBoundTextConverter

Namespace Xamarin.Forms.Platform.UWP

Type Changed: Xamarin.Forms.Platform.UWP.CarouselViewRenderer

Removed property:

protected Xamarin.Forms.CarouselView Carousel { get; }

Type Changed: Xamarin.Forms.Platform.UWP.ItemsViewRenderer`1

Removed method:

protected virtual void FindScrollViewer (Windows.UI.Xaml.Controls.ListViewBase listView);

Type Changed: Xamarin.Forms.Platform.UWP.MasterDetailControl

Modified base type:

-Windows.UI.Xaml.Controls.Control
+Xamarin.Forms.Platform.UWP.FlyoutPageControl

Removed fields:

public static Windows.UI.Xaml.DependencyProperty CollapseStyleProperty;
public static Windows.UI.Xaml.DependencyProperty CollapsedPaneWidthProperty;
public static Windows.UI.Xaml.DependencyProperty ContentTogglePaneButtonVisibilityProperty;
public static Windows.UI.Xaml.DependencyProperty DetailProperty;
public static Windows.UI.Xaml.DependencyProperty DetailTitleIconProperty;
public static Windows.UI.Xaml.DependencyProperty DetailTitleProperty;
public static Windows.UI.Xaml.DependencyProperty DetailTitleViewProperty;
public static Windows.UI.Xaml.DependencyProperty DetailTitleViewVisibilityProperty;
public static Windows.UI.Xaml.DependencyProperty DetailTitleVisibilityProperty;
public static Windows.UI.Xaml.DependencyProperty IsPaneOpenProperty;
public static Windows.UI.Xaml.DependencyProperty MasterProperty;
public static Windows.UI.Xaml.DependencyProperty MasterTitleProperty;
public static Windows.UI.Xaml.DependencyProperty MasterTitleVisibilityProperty;
public static Windows.UI.Xaml.DependencyProperty MasterToolbarVisibilityProperty;
public static Windows.UI.Xaml.DependencyProperty ShouldShowNavigationBarProperty;
public static Windows.UI.Xaml.DependencyProperty ShouldShowSplitModeProperty;
public static Windows.UI.Xaml.DependencyProperty ToolbarBackgroundProperty;
public static Windows.UI.Xaml.DependencyProperty ToolbarForegroundProperty;

Removed properties:

public Xamarin.Forms.PlatformConfiguration.WindowsSpecific.CollapseStyle CollapseStyle { get; set; }
public double CollapsedPaneWidth { get; set; }
public Windows.UI.Xaml.Visibility ContentTogglePaneButtonVisibility { get; set; }
public Windows.UI.Xaml.FrameworkElement Detail { get; set; }
public Windows.Foundation.Size DetailSize { get; }
public string DetailTitle { get; set; }
public Windows.UI.Xaml.Media.ImageSource DetailTitleIcon { get; set; }
public Xamarin.Forms.View DetailTitleView { get; set; }
public Windows.UI.Xaml.Visibility DetailTitleViewVisibility { get; set; }
public Windows.UI.Xaml.Visibility DetailTitleVisibility { get; set; }
public bool IsPaneOpen { get; set; }
public bool ShouldShowNavigationBar { get; set; }
public bool ShouldShowSplitMode { get; set; }
public bool ShouldShowToolbar { get; set; }
public Windows.UI.Xaml.Media.Brush ToolbarBackground { get; set; }
public bool ToolbarDynamicOverflowEnabled { get; set; }
public Windows.UI.Xaml.Media.Brush ToolbarForeground { get; set; }
public Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ToolbarPlacement ToolbarPlacement { get; set; }

Removed method:

protected override void OnApplyTemplate ();

Type Changed: Xamarin.Forms.Platform.UWP.MasterDetailPageRenderer

Removed properties:

public MasterDetailControl Control { get; }
public Xamarin.Forms.MasterDetailPage Element { get; }
protected Xamarin.Forms.Platform.UWP.VisualElementTracker<Xamarin.Forms.Page,Windows.UI.Xaml.FrameworkElement> Tracker { get; set; }

Removed event:

public event System.EventHandler<VisualElementChangedEventArgs> ElementChanged;

Removed methods:

public virtual void BindForegroundColor (Windows.UI.Xaml.Controls.AppBar appBar);
public virtual void BindForegroundColor (Windows.UI.Xaml.Controls.AppBarButton button);
public virtual void Dispose ();
public virtual Xamarin.Forms.SizeRequest GetDesiredSize (double widthConstraint, double heightConstraint);
protected virtual void OnElementChanged (Xamarin.Forms.Platform.UWP.ElementChangedEventArgs<Xamarin.Forms.MasterDetailPage> e);
protected virtual void OnElementPropertyChanged (object sender, System.ComponentModel.PropertyChangedEventArgs e);
public virtual void SetElement (Xamarin.Forms.VisualElement element);

Removed Type Xamarin.Forms.Platform.UWP.MediaElementRenderer

Assembly Version Changed: 2.0.0.0 vs 0.0.0.0

Assembly Version Changed: 2.0.0.0 vs 0.0.0.0

Deprecations

API Changes

See all API Changes here.

Blogs

Xamarin Blogs

Thank you

Thank you to our community for helping to make Xamarin.Forms even better! Do you want to contribute in some way, too? Join us on Discord!

Contributors

This release, we received amazing contributions from these individuals. Give them a big round of applause!

Author Commit PR
1iveowl (@1iveowl) [iOS] Fix touch conflict between Shell Flyout and SwipeView (on Device) (#9144) #9144
Adam (@adamped) [iOS] ActivityIndicator starting animation only when attached to superview (#11339) #11339
Andrei (@AndreiMisiukevich) Easing type converter (#11601) #11601
Andrei (@AndreiMisiukevich) EasingDesignTypeConverter (#11697) #11697
Andrei (@AndreiMisiukevich) fixes #9720 (#9732) #9732
Andrew Hoefling (@ahoefling) Changed VisualElement default constructor accessor to protected internal (#12125) #12125
Andrew Hoefling (@ahoefling) Adds Shell Flyout Footer Template (#6432) #6432
Byron Maroney (@breezy64) Fixing NRE in ContextActionCell (#11944) fixes #11943 #11944
Durgesh Khandal (@techduggu) [Enhancement] ListView ScrollTo with empty groups - Android (#8310)f ixes #8279 #8310
github-actions[bot] (@github-actions[bot]) Automated dotnet-format update (#12306) #12306
github-actions[bot] (@github-actions[bot]) Automated dotnet-format update (#12319) #12319
github-actions[bot] (@github-actions[bot]) Automated dotnet-format update (#12335) #12335
github-actions[bot] (@github-actions[bot]) Automated dotnet-format update (#12403) #12403
Kangho Hur (@rookiejava) [Tizen] Adds the Unified Theme Manager (#11779) #11779
Kangho Hur (@rookiejava) [Tizen] Enhances the EntryRenderer (#11978) #11978
Kangho Hur (@rookiejava) [Tizen] Fixed getting the device type (#12133) #12133
Kangho Hur (@rookiejava) [Tizen] Replace MDP to FlyoutPage (#12277) #12277
KyNam (@KyNam) MacOS - Fix crash when invoking VisualElement.Focus() (#12267) #12267
Morten Nielsen (@dotMorten) Only require 14393+ for class libraries #10368 (#10713) #10713
Pedro Jesus (@pictos) [GH-10729] Added Current Page in Shell (#10979) #10979
Pedro Jesus (@pictos) GH-8881 - Remove the line at the flyout's end (#9429) #9429
Pedro Jesus (@pictos) Fix flyout render quirks (#12129) #12129
Pedro Jesus (@pictos) Make OnPlatform helpers public (#12278) #12278
Peter Foot (@peterfoot) [WPF] Open DatePicker when control receives focus (to match other platforms) (#11087) #11087
Philippe Leybaert (@activa) [UWP] Fix crash when specifying non-embedded font families (fixes #12153) (#12171) #12171
Seungkeun Lee (@myroot) Update profile unified font size scaling (#11979) #11979
Seungkeun Lee (@myroot) Fix SearchHandler.SetIsFocused (#11895) fixes #11894 #11895
Seungkeun Lee (@myroot) [Tizen] Adds the DisplayResolutionUnit (#12074) #12074
Seungkeun Lee (@myroot) Fix Assembly registration issue (#12130) #12130
Seungkeun Lee (@myroot) [Tizen] Enhances the shell renderer (#12119) #12119
Seungkeun Lee (@myroot) [Tizen] Support VisualState on Items of CollectionView (#12281) fixes #12225 #12281
shmin (@shyunMin) [Tizen] Fix the DisplayActionSheet (#12188) #12188
shmin (@shyunMin) [Tizen] Update Tizen.NET.MaterialComponents (#12282) #12282
tessarolli (@tessarolli) [WPF] Fix FormsPanel MeasureOverride negative requested size (#10653) #10653
Vladislav Antonyuk (@VladislavAntonyuk) #3659 #3660 WPF/GTK ListView ContextMenu, SelectionBehavior fix (#6417) #6417
Yann Zahringer Ferrando (@YZahringer) WeakEventManager made public (#12063) fixes #8405, #12063

Community Reviewers

As if that wasn't enough, these amazing community members and MVPs reviewed and tested these pull requests. We couldn't do it without you!

Reviewer PR
(@dersia) #9453
Felipe Baltazar (@felipebaltazar) #12039
Kangho Hur (@rookiejava) #11979
Kangho Hur (@rookiejava) #12074
Kangho Hur (@rookiejava) #12119
Kangho Hur (@rookiejava) #12130
Kangho Hur (@rookiejava) #12188
Mohamed CHOUCHANE (@mohachouch) #6417
Nick Randolph (@nickrandolph) #8310
Pedro Jesus (@pictos) #6432
Pedro Jesus (@pictos) #12039
Pedro Jesus (@pictos) #12186
Pedro Jesus (@pictos) #12331
Peter Spada (@spadapet) #10523
Rachel Kang (@rachelkang) #12331
Rafael Rivera (@riverar) #8310
Rafael Rivera (@riverar) #11087
Rafael Rivera (@riverar) #9732
Vladislav Antonyuk (@VladislavAntonyuk) #10653

Feedback welcome

Your feedback is important to us. If there are any problems with this release, check the Xamarin.Forms Forums and GitHub for existing issues. Report new issues and suggestions on GitHub.

Open Source

Xamarin.Forms 5.0.0 is based on the open-source Xamarin.Forms repository: