{"id":44579,"date":"2019-07-08T09:34:41","date_gmt":"2019-07-08T16:34:41","guid":{"rendered":"http:\/\/devblogs.microsoft.com\/xamarin\/?p=44579"},"modified":"2019-08-30T08:28:50","modified_gmt":"2019-08-30T15:28:50","slug":"xamarin-forms-4-1-0-stable-now-available","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/xamarin\/xamarin-forms-4-1-0-stable-now-available\/","title":{"rendered":"Xamarin.Forms 4.1.0 Stable Now Available"},"content":{"rendered":"<p>Today we are happy to announce Xamarin.Forms 4.1 availability <a href=\"https:\/\/www.nuget.org\/packages\/Xamarin.Forms\/\">on NuGet<\/a>. Our 3.0.0 series of releases focused heavily on growing Xamarin.Forms by filling in the gaps. We learned that this should be available by default and want to continue effectively growing Xamarin.Forms to best meet your needs and improve productivity. Thank you for filling out surveys, scheduling discussion time, sharing your projects, and collaborating through GitHub!<\/p>\n<h2>4.0.0 service releases with 4.1.0<\/h2>\n<p>This release combines the three 4.0.0 service releases with 4.1.0. Bringing dozens of additional quality improvements, a new <a href=\"https:\/\/docs.microsoft.com\/xamarin\/xamarin-forms\/user-interface\/checkbox?WT.mc_id=xf41-xamarinblog-daortin\">CheckBox<\/a> control <a href=\"https:\/\/devblogs.microsoft.com\/xamarin\/checkbox-xamarin-forms-4-1-0-pre-release\/\">(debuted in our preview post)<\/a>, and several enhancements from community contributions such as Map improvements.<\/p>\n<h2>Enhancing Maps<\/h2>\n<p>Now, capturing the location of a tap or click is as easy as subscribing to the <code>OnMapClicked<\/code> event added by <a href=\"https:\/\/github.com\/jcmanke\">Joe Manke<\/a>. Take a look at this in action.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-44580\" src=\"http:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2019\/07\/map_click.gif\" alt=\"4.1 release includes OnMapClicked event\" width=\"248\" height=\"478\" \/><\/p>\n<p>Take this example from <a href=\"https:\/\/github.com\/davidortinau\/Xappy\">Xappy (on GitHub)<\/a>. When you tap anywhere on the map canvas, the event returns the latitude and longitude of the tap. It then drops a new pin on that location.<\/p>\n<pre><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;ContentPage\r\n    xmlns=\"http:\/\/xamarin.com\/schemas\/2014\/forms\"\r\n    xmlns:x=\"http:\/\/schemas.microsoft.com\/winfx\/2009\/xaml\"\r\n    xmlns:maps=\"clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps\"\r\n    xmlns:local=\"clr-namespace:Xappy;assembly=Xappy\"\r\n    Shell.NavBarIsVisible=\"False\"\r\n    Shell.TabBarIsVisible=\"False\"\r\n    x:Class=\"Xappy.Scenarios.MapPage\"&gt;\r\n    &lt;Grid&gt;\r\n        &lt;maps:Map\r\n            x:Name=\"MyMap\"\r\n            IsShowingUser=\"true\"\r\n            MapType=\"Street\"\r\n            MapClicked=\"Handle_MapClicked\" \/&gt;\r\n            ...\r\n\r\n<\/code><\/pre>\n<pre class=\"\"><code>void Handle_MapClicked(object sender, MapClickedEventArgs e)\r\n{\r\n\r\n    MyMap.Pins.Add(\r\n            new Pin\r\n            {\r\n                Position = new Position(e.Position.Latitude, e.Position.Longitude),\r\n                Label = \"Joe's Place\"\r\n            }\r\n        );\r\n    DisplayAlert(\"Joe Says:\", $\"Last MapClick: {e.Position.Latitude}, {e.Position.Longitude}\", \"Thanks\");\r\n}\r\n<\/code><\/pre>\n<h2>What Other Controls and Features Are Missing?<\/h2>\n<p>This map enhancement and the checkbox certainly fell into the &#8220;High Priority&#8221; category for Xamarin.Forms. Do you have other examples of features or even controls that you feel should just be there? Perhaps you are already writing custom renderers or effects for these types of things. We&#8217;d love to know! Please <a href=\"https:\/\/www.surveymonkey.com\/r\/SYN3SSB\">share your insight here<\/a>.<\/p>\n<h2>Xamarin Show<\/h2>\n<p>To learn more about the features of this release, check out the <a href=\"https:\/\/docs.microsoft.com\/xamarin\/xamarin-forms\/release-notes\/4.1\/4.1.0?WT.mc_id=xf41-xamarinblog-daortin\">full 4.1.0 release notes<\/a>. Also, watch this Xamarin Show with me and <a href=\"http:\/\/twitter.com\/jamesmontemagno\" target=\"_blank\" rel=\"noopener noreferrer\">James Montemagno<\/a>.<\/p>\n<p><center>\n<iframe width=\"560\" height=\"315\" src=\"https:\/\/channel9.msdn.com\/Shows\/XamarinShow\/XamarinForms-41-CheckBox-Fonts-and-so-much-more--The-Xamarin-Show\/player\" allowfullscreen=\"allowfullscreen\" frameborder=\"0\"><\/iframe><\/center><\/p>\n<h2>Get Updating to Xamarin.Forms 4.1.0<\/h2>\n<p>To get started, launch your favorite NuGet package manager. Install the latest Xamarin.Forms into your projects. Use the <a href=\"https:\/\/docs.microsoft.com\/nuget\/quickstart\/install-and-use-a-package-in-visual-studio?WT.mc_id=xf41-xamarinblog-daortin\">Microsoft documentation guides<\/a> to help with the installation steps. <\/p>\n<p>Then browse through all of the latest documentation for Xamarin.Forms 4.1 including <a href=\"https:\/\/docs.microsoft.com\/xamarin\/xamarin-forms\/user-interface\/checkbox?WT.mc_id=xf41-xamarinblog-daortin\">CheckBox<\/a>, <a href=\"https:\/\/docs.microsoft.com\/xamarin\/xamarin-forms\/platform\/device?WT.mc_id=xf41-xamarinblog-daortin\">Device helpers<\/a>, and <a href=\"https:\/\/docs.microsoft.com\/\/xamarin\/xamarin-forms\/user-interface\/map?WT.mc_id=xf41-xamarinblog-daortin\">Maps<\/a>.<\/p>\n<p>Find something amiss or have general feedback? Please take a minute to log an issue via Visual Studio feedback, or by <a href=\"https:\/\/github.com\/xamarin\/Xamarin.Forms\/issues\/new\/choose\">opening an issue in the Xamarin.Forms GitHub<\/a>.<\/p>\n<p>Happy coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we are happy to announce Xamarin.Forms 4.1 availability on NuGet. Our 3.0.0 series of releases focused heavily on growing Xamarin.Forms by filling in the \u201clittle things\u201d we learned from you that should be available by default.<\/p>\n","protected":false},"author":553,"featured_media":44675,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5216,2,367],"tags":[6096,6097,5982,16],"class_list":["post-44579","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcements","category-developers","category-xamarin-forms","tag-4-1","tag-4-1-0","tag-new-releases","tag-xamarin-forms"],"acf":[],"blog_post_summary":"<p>Today we are happy to announce Xamarin.Forms 4.1 availability on NuGet. Our 3.0.0 series of releases focused heavily on growing Xamarin.Forms by filling in the \u201clittle things\u201d we learned from you that should be available by default.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/44579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/users\/553"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/comments?post=44579"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/44579\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media\/44675"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media?parent=44579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/categories?post=44579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/tags?post=44579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}