Xamarin.Forms 5.0.0.1487-pre1 (5.0.0 Pre Release 1) 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.
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 toFlyoutPage.Flyout
MasterBehavior
changed toFlyoutLayoutBehavior
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
- GitHub #11857 - "[Spec] Major Breaking Changes Proposed for Xamarin.Forms 5.0" (#11971) (#11972) (#12005) (#12007) (#12073) (#12095) (#12096)
Brushes
- GitHub #11573 - "[Bug][Brushes] RadialGradient size on iOS" (#11733)
- GitHub #11898 - "[Bug] GradientStop binding color isn't working" (#11783)
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 #8641 - "[Bug] CarouselView doesn't loop" (#9453)
CollectionView
- "[Core,iOS,Android] Remove experimental flags Carousel, Swipe, Shapes, Brush" (#12068)
- GitHub #10454 - "[Bug] CollectionView ChildAdded" (#10812)
- GitHub #10801 - "System.ObjectDisposedException: Cannot access a disposed object 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'" (#12114)
- GitHub #11081 - "[Bug] CarouselView should not animate an initial Position on Android" (#11173)
- GitHub #11311 - "[Regression] CollectionView NSRangeException" (#11402)
- 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 #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
- GitHub #3777 - "Dark mode on Mojave doesn't work right" (#10646)
- GitHub #8864 - "[Bug] MacOS Xamarin Forms does not support dark mode" (#10646)
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)
Shell
- "[Core,iOS,Android] Remove experimental flags Carousel, Swipe, Shapes, Brush" (#12068)
- "[Tizen] Enhances the shell renderer" (#12119)
- 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 #11894 - "[Bug] SearchHandler.Focused / Unfocused event was not delivered" (#11895)
- 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 #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)
- "Duo SDK memory leak and Performance fixes" (#11837)
- GitHub #9088 - "[Bug] SwipeView items conflict with Shell menu swipe in from left, on real iOS devices" (#9144)
Other Enhancements
- "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)
- GitHub #9088 - "[Bug] SwipeView items conflict with Shell menu swipe in from left, on real iOS devices" (#9144)
Release History
- Wednesday, September 23, 2020 - Xamarin.Forms 5.0.0.1487-pre1 (5.0.0 Pre Release 1)
Wednesday, September 23, 2020 - Xamarin.Forms 5.0.0.1487-pre1 (5.0.0 Pre Release 1)
Issues Fixed
- GitHub #10358 - "[Bug] [WPF] Datepicker's calendar not show when we call Datepicker.Focus() in WPF" (#11087)
- GitHub #10377 - "[Bug] RefreshView not showing ActivityIndicator on page appearing with XF Shell " (#11339)
- GitHub #10454 - "[Bug] CollectionView ChildAdded" (#10812)
- GitHub #10638 - "[Bug] Shell.Current.GoToAsync("..", true) has no animation like Shell.Current.Navigation.PopAsync()" (#12039)
- GitHub #10679 - "[Bug] SwipeView crash with NullReferenceException" (#10682)
- GitHub #10801 - "System.ObjectDisposedException: Cannot access a disposed object 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'" (#12114)
- GitHub #11081 - "[Bug] CarouselView should not animate an initial Position on Android" (#11173)
- GitHub #11190 - "[Bug] Shapes: ArcSegment throwing on iOS, doing nothing on Android" (#11195)
- 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 #11311 - "[Regression] CollectionView NSRangeException" (#11402)
- 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 #11413 - "[Bug] Rectangle shape - Incorrect rendering/crash (depending on platform)" (#11418)
- GitHub #11573 - "[Bug][Brushes] RadialGradient size on iOS" (#11733)
- GitHub #11709 - "[Bug] [WPF] ScrollView - ScrollBarVisibility not respected" (#11918)
- GitHub #11711 - "[Bug] Incomplete XAML error" (#11731)
- GitHub #11737 - "[Bug] SwipeView Closes After Command Executes Despite SwipeBehaviorOnInvoked="RemainOpen" (iOS)" (#11762)
- GitHub #11794 - "[Bug] RefreshView with CollectionView child cannot contain GridItemsLayout with Span greater than 1 in combination with EmptyView on UWP" (#11913)
- GitHub #11858 - "Ellipse is not antialised" (#11874)
- GitHub #11875 - "[Bug] Label MaxLine not updating value after changing from View Model" (#11896)
- GitHub #11894 - "[Bug] SearchHandler.Focused / Unfocused event was not delivered" (#11895)
- GitHub #11898 - "[Bug] GradientStop binding color isn't working" (#11783)
- GitHub #11908 - "[Bug] [UWP] ItemsViewRenderer doesn't clean up CollectionViewSource correctly" (#11919)
- GitHub #11923 - "[Bug] [WPF] FormsWindow.SynchronizeAppBar will throw NullReferenceException" (#11926)
- GitHub #11943 - "[Bug] iOS CellView BindingContextChanged Event -> Null Reference Within ContextActions Clear()" (#11944)
- GitHub #12025 - "[Bug] XamlC error : Sequence contains more than one element" (#12085)
- GitHub #1989 - "Disappearing ActivityIndicators in TableView on iOS" (#11339)
- GitHub #3659 - "WPF/GTK ListView Cell ContextMenu" (#6417)
- GitHub #3660 - "WPF ListView Cell Selection Behaviour" (#6417)
- GitHub #3777 - "Dark mode on Mojave doesn't work right" (#10646)
- 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 #8864 - "[Bug] MacOS Xamarin Forms does not support dark mode" (#10646)
- GitHub #8881 - "[Bug] Shell Flyout - Weird line at the bottom of the items in iOS" (#9429)
- 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)
- GitHub #9205 - "[Bug] Shell MenuItem Text Binding values not updated on Android" (#11987)
- GitHub #9720 - "[Bug] iOS platform-specific VisualElement Blur is misaligned" (#9732)
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] Fixed Tizen 4.0 regression issue" (#12132)
- "[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
- "Make CancelAnimations an extension method" (#11884)
- "Remove Compact Window from Dual Screen APIs" (#12093)
- GitHub #11857 - "[Spec] Major Breaking Changes Proposed for Xamarin.Forms 5.0" (#11971) (#11972) (#12005) (#12007) (#12073) (#12095) (#12096)
- GitHub #8527 - "[Bug] Fix the Shell story when running on iPad in multi task mode" (#12097)
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.IMasterDetailPageController
Removed properties:
public bool CanChangeIsPresented { get; set; }
public Rectangle DetailBounds { get; set; }
public bool ShouldShowSplitMode { get; }
Removed event:
public event System.EventHandler<BackButtonPressedEventArgs> BackButtonPressed;
Removed method:
public virtual void UpdateMasterBehavior ();
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 ();
public virtual void UpdateMasterBehavior ();
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.Common.Shell.Resources.Shell
Type Changed: Xamarin.Forms.Platform.Tizen.ThemeConstants.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.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
Removed Type Xamarin.Forms.Platform.Tizen.Native.EmbeddingControls
Removed Type Xamarin.Forms.Platform.Tizen.Native.LayoutCanvas
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
- GitHub #11857 - "[Spec] Major Breaking Changes Proposed for Xamarin.Forms 5.0" (#11971) (#11972) (#12005) (#12007) (#12073) (#12095) (#12096)
API Changes
See all API Changes here.
- "[Core] Add an overload for async ImageSource" (#11906)
- "Duo SDK memory leak and Performance fixes" (#11837)
- "Remove Compact Window from Dual Screen APIs" (#12093)
- GitHub #11081 - "[Bug] CarouselView should not animate an initial Position on Android" (#11173)
- GitHub #11857 - "[Spec] Major Breaking Changes Proposed for Xamarin.Forms 5.0" (#11971) (#11972) (#12005) (#12007) (#12073) (#12095) (#12096)
- GitHub #8641 - "[Bug] CarouselView doesn't loop" (#9453)
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 |
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 |
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 Tizen 4.0 regression issue (#12132) | #12132 |
Kangho Hur (@rookiejava) | [Tizen] Fixed getting the device type (#12133) | #12133 |
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 |
Peter Foot (@peterfoot) | [WPF] Open DatePicker when control receives focus (to match other platforms) (#11087) | #11087 |
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 |
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 |
Mohamed CHOUCHANE (@mohachouch) | #6417 |
Nick Randolph (@nickrandolph) | #8310 |
Pedro Jesus (@pictos) | #12039 |
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: