Forms9Patch 0.9.13

Xamarin Forms is great for developing apps on Android and iOS but it is missing some important features:
•Scalable images
•PCL, multi-screen / multi-resolution image management
•HTML formatted text for labels and buttons
•PCL custom font management

Android developers can use NinePatch bitmaps, the drawable directory naming convention, Html.FromHtml, and a bunch of complex file manipulations to address the image issue.  Likewise, iOS developers can use ResizeableImageWithCapInsets, the @2x, @3x, @4x file naming convention, and some 3rd party libraries for this purpose.  Forms 9 Patch enhances Xamarin Forms to make multi-resolution / multi-screen image management, custom fonts, and HTML text formatting easy for PCL apps for iOS and Android.

There is a newer version of this package available.
See the version list below for details.
Install-Package Forms9Patch -Version 0.9.13
dotnet add package Forms9Patch --version 0.9.13
<PackageReference Include="Forms9Patch" Version="0.9.13">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Forms9Patch --version 0.9.13
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

0.9.13.0: New: CustomFontEffect platform effect can be applied to Xamarin.Forms Label, Button, Entry, and Editor elements to allow the EmbeddedResourceID of PCL Embedded Resource fonts as value for FontFamily property.
0.9.12.5: Fixed: ImageButton in ContentView fails to correctly render state changes in BackgroundImage (Android).
0.9.12.4: Fixed: resizing of button labels when text is changed.
Enhanced: Forms9Patch.ImageSource.FromMultiResource uses first portion of path of Embedded Resource to determine which assembly to search.
Changed: Lines property of Label sets the max number of lines when Fit=LabelFit.None.
0.9.12.2: Fixed: (1) crash when render Label in Horizontal Orientation in StackLayout; (2) Failure to render Label in some layouts; (3) Failure to autofit some one-character labels correctly; (4) Failure to resize label when bounds changes; Enhanced: Can refer to iOS system fonts by using their name as value for FontFamily property.
0.9.12.2: Fixed: (1) crash when instantiating buttons on iOS release builds; (2) iOS HtmlText <tt> tag combined with <b>, <u>, or <i> fails to render font correctly; (3) Image button touch intermittantly fails.
Enhanced: Width and Height values of LabelFit are now supported for labels with unimposed Height.
0.9.12.1: Fixed: (1) failure to get bold and/or italic version of some iOS system fonts; (2) Multi-line labels not appearing so on iOS; (3) 9Patch images market to edge failing to render on iOS;
0.9.12.0: New: Width and Lines Autofit for Labels.  TrailingImage property for ImageButton, MaterialButton and MaterialSegmentedController. Forms9Patch.FontExtensions.LoadedFontFamilies() lists all currently loaded fonts.
Fixed: iOS HtmlMarkup underlines don't match font color, Default Android image button label missing for some states.  Unable to bind to Segment.  Able to unselect Segment when in Radio mode.
0.9.11.2: Fixed: in iOS, Images will have height or width of 1 (instead defaulting to source image height or width) when HeightRequest or WidthRequest is not set.
0.9.11.1: Fixed: Issue where Forms9Patch.iOS.Settings.LicenseKey throws System.NullRefernceException.
0.9.11.0: Added HTML markup to Label, MaterialButton, Segment, and ImageButtonState elements.
0.9.10.7: Built for Xamain Forms 2.2
0.9.10.6: Fixed crash when no Target is given for BubblePopup.  Fixed failure to present popups when used w/ PushModalAsync().
0.9.10.4: Added Cancel method to Popups; Auto-cancel Popups when Android [back] button is pressed.
0.9.10.3: Improved reliabilty of rendering of 9patch backgrounds when used in ListView in Android.
0.9.10.2: Fixed AOT issue that caused BubblePopup not to work on iOS devices.
0.9.10.1: Fixed layout of NinePatch backgrounds when used in a ListView on Android.
0.9.10.0: Added ModalPopup and BubblePopup elements.  See demo app for example.
0.9.9.3: 25x Improved tap response on all buttons; Fixed ImageButton.Background rendering issue.
0.9.9.2: 3x Improved iOS image loading time.  Known issue: ImageButton Fails to present anything but DefaultState.BackgroundImage - will be fixed very soon.
0.9.9.1: Fixed issue with comping for iOS devices.
0.9.9.0: Added:
(1) PressingState to ImageButton to enable customization of the button for when it is in the pressed state.
(2) LongPressing and LongPressed events have been added to the ImageButton, MaterialButton, and Segment element.
(3) SegmentLongPressing and SegmentLongPressed events have been added to the MaterialSegmentedControl element.
(4) Renamed ImageButton's Clicked event to Tapped.
0.9.8.2: Fixed not all XAML attributes working for ImageButtonState.
0.9.8.1: Fixed:  XAML Segments Attribute for MaterialSegmentButton; Added FontColor and FontAttributes properties to Segment
0.9.8.0+ Added MaterialSegmentControl, Added Orientation property to MaterialButton
0.9.7.1 Fixed: MaterialButton render when image but no text present.
0.9.7.0 Added ImageButton and MaterialButton elements, Added HasShadow property to Android and iOS AbsoluteLayout, Frame, Grid, RelativeLayout, and StackLayout layouts.
0.9.6.0 Fixed intermittant iOS UIImage.ImageWithData double free, Added RelativeLayout, Grid, and AbsoluteLayout Elements
0.9.5.2 Fixed ContentView background scalable image rendered as non-scalable image if CapsInset has a one or two -1 values
0.9.5.1 Fixed scaling of ContentView BackgroundImage
0.9.5 1) Added Fill (AspectFill, AspectFit, Fill and Tile) property to Image; 2) Added ContentView and Frame elements with BackgroundView and (for Frame) OutlineWidth and OutlineRadius properties
0.9.4 Bug fix Correct resizing when iOS screen orientation changes
0.9.3 fix race condition during debug where iOS Renderer releases Element before releasing renderer.
0.9.2 Bug fix for not properly scaling when parent space is smaller than base image but larger than base image less complaint portion.
0.9.1 beta release
0.9.1 fix: scaling of scalable images larger than parent space

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Forms9Patch:

Package Downloads
EltraXamCommon
Eltra - CANOpen based IoT Framework - SDK - Xamarin UI
Plugin.Xamarin.Tools
Set of several tools and dependency services for xamarin

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Forms9Patch:

Repository Stars
baskren/Forms9Patch
Simplify image management and text formatting in your Xamarin.Forms apps

Version History

Version Downloads Last updated
2.4.9 1,015 12/16/2020
2.4.9-beta2 46 12/16/2020
2.4.9-beta1 97 12/15/2020
2.4.8 1,084 11/28/2020
2.4.7 401 11/19/2020
2.4.6 2,515 9/18/2020
2.4.5 135 9/17/2020
2.4.4 158 9/17/2020
2.4.2 3,096 7/25/2020
2.4.1 187 7/25/2020
2.4.0 196 7/24/2020
2.4.0-beta2 134 7/24/2020
2.4.0-beta1 148 7/24/2020
2.3.0 6,792 6/29/2020
2.2.6 9,998 3/15/2020
2.2.5 591 3/14/2020
2.2.5-beta1 291 3/14/2020
2.2.4 4,042 1/28/2020
2.2.4-beta1 178 1/23/2020
2.2.3 2,113 1/4/2020
2.2.3-pre1 250 1/4/2020
2.2.2 675 12/31/2019
2.2.1 337 12/30/2019
2.2.0 353 12/26/2019
2.1.3 1,673 12/10/2019
2.1.2 2,819 11/27/2019
2.1.1 284 11/26/2019
2.1.0 254 11/26/2019
2.1.0-beta1 209 11/22/2019
2.0.2 939 11/13/2019
2.0.1 243 11/12/2019
2.0.0 975 11/11/2019
2.0.0-rc1 176 11/11/2019
1.8.1 2,227 9/17/2019
1.8.0.5 1,365 8/15/2019
1.8.0.4 1,373 7/26/2019
1.8.0.2 1,482 7/9/2019
1.8.0.1 958 7/5/2019
1.8.0 1,480 6/26/2019
1.7.0 11,326 4/22/2019
1.6.7.2 2,173 4/12/2019
1.6.7.1 1,036 4/11/2019
1.6.7 969 4/11/2019
1.6.6.2 1,358 4/7/2019
1.6.6.1 1,706 3/22/2019
1.6.6 6,981 3/2/2019
1.6.5.1 1,298 2/6/2019
1.6.5.1-rc2 965 2/1/2019
1.6.5.1-rc1 968 1/30/2019
1.6.5 1,364 1/28/2019
1.6.4 13,874 12/5/2018
1.6.3 8,041 11/25/2018
1.6.2.1 2,741 11/16/2018
1.6.2 1,180 11/15/2018
1.6.1 1,286 11/2/2018
1.6.0.1 1,030 10/30/2018
1.6.0-rc5 979 10/30/2018
1.6.0-rc4 944 10/30/2018
1.6.0-rc3 969 10/29/2018
1.6.0-rc2 1,010 10/27/2018
1.6.0-rc1 949 10/27/2018
1.5.0.9 7,435 10/23/2018
1.5.0.9-beta1 988 10/22/2018
1.5.0.8 1,074 10/22/2018
1.5.0.7-rc1 1,021 10/20/2018
1.5.0.6 1,187 10/12/2018
1.5.0.5 1,055 10/12/2018
1.5.0-rc1 1,009 10/9/2018
1.4.0.3 1,681 9/7/2018
1.4.0.2 1,022 9/7/2018
1.4.0.1 1,017 9/7/2018
1.4.0 1,122 9/5/2018
1.3.3 3,362 6/28/2018
1.3.2 3,275 6/19/2018
1.3.1 1,494 5/15/2018
1.3.0 1,280 5/11/2018
1.2.0.3 1,268 4/19/2018
1.2.0 1,204 4/17/2018
1.1.1 1,546 2/19/2018
1.1.0 1,618 1/6/2018
1.0.1.3 1,206 1/5/2018
1.0.1.2 1,398 1/4/2018
1.0.1.1 1,192 1/2/2018
1.0.0 1,182 12/28/2017
0.10.3.5 9,588 10/26/2017
0.10.3.4 2,538 10/7/2017
0.10.3.3 5,185 8/14/2017
0.10.3.2 1,332 8/2/2017
0.10.3.1 1,356 7/10/2017
0.10.3 1,270 6/27/2017
0.10.2.16 1,272 6/21/2017
0.10.2.13 1,384 5/30/2017
0.10.2.12 1,229 5/23/2017
0.10.2.11 1,349 5/10/2017
0.10.2.10 1,245 5/3/2017
0.10.2.9 1,186 5/3/2017
0.10.2.8 1,188 5/3/2017
0.10.2.7 1,211 5/1/2017
0.10.2.6 1,490 4/16/2017
0.10.2.5 1,174 4/16/2017
0.10.2.4 1,262 4/10/2017
0.10.2.3 1,279 3/28/2017
0.10.2.2 1,912 3/2/2017
0.10.2.1 1,776 2/22/2017
0.10.1 1,384 2/16/2017
0.10.0.1 1,237 2/13/2017
0.10.0 1,219 2/11/2017
0.9.13.5 3,466 10/13/2016
0.9.13.4 1,279 9/26/2016
0.9.13.3 1,282 9/21/2016
0.9.13.2 1,209 9/15/2016
0.9.13.1 1,236 9/1/2016
0.9.13 1,310 8/22/2016
0.9.12.5 1,255 8/17/2016
0.9.12.4 1,429 8/6/2016
0.9.12.3 1,352 7/19/2016
0.9.12.2 1,415 7/16/2016
0.9.12.1 1,375 7/13/2016
0.9.12 1,338 7/11/2016
0.9.11.2 1,315 6/27/2016
0.9.11.1 1,447 5/10/2016
0.9.11 1,353 5/5/2016
0.9.10.7 1,215 4/29/2016
0.9.10.6 1,236 4/12/2016
0.9.10.5 1,227 4/5/2016
0.9.10.4 1,199 3/31/2016
0.9.10.3 1,221 3/23/2016
0.9.10.2 1,225 3/21/2016
0.9.10.1 1,202 3/21/2016
0.9.10 1,364 3/11/2016
0.9.9.3 1,417 3/1/2016
0.9.9.2 1,199 3/1/2016
0.9.9.1 1,207 2/28/2016
0.9.9 1,210 2/25/2016
0.9.8.2 1,217 2/19/2016
0.9.8.1 1,218 2/5/2016
0.9.8 1,227 2/4/2016
0.9.7.1 1,221 1/29/2016
0.9.7 1,197 1/28/2016
0.9.6 1,231 1/24/2016
0.9.5.2 1,192 1/21/2016
0.9.5.1 1,199 1/20/2016
0.9.5 1,218 1/20/2016
0.9.4.1 1,270 1/14/2016
0.9.3 1,223 1/13/2016
0.9.2.3 1,226 1/9/2016
0.9.1 1,224 1/4/2016
Show less