From a8d0d7a1d4a4629b06c3adcdba56e7da94613095 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Sat, 27 Apr 2019 00:46:13 +0400 Subject: [PATCH] [WIP] Unify the image handling (#4915) * Initial code to get unifiied image handling - not yet tested - still using FileImageSource in some areas * Updated the button renderers and added tests for Android * Updated a few more of the Android renderers - also added an `IsEmpty` property to the ImageSource to indicate if this source actually contains data that can be used to try and load an image - added a few more "tests" - includes the changes for #4916 * A few more changes * Keep the default page for the sample app * Changing everything to ImageSource and going from there - Android, iOS, UWP and WPF are compiling - GTK, Mac and Tizen are not yet finished - Added a new interface for UWP to return an IconElement in addition to ImageSource (for app bar buttons) - not tested yet, nor are there any tests * Renamed the property to be more useful * All of Android is now async - still only minimal tests - also removed the bits that are in https://github.com/xamarin/Xamarin.Forms/pull/4948 * Update Xamarin.Forms.Platform.cs * A few fixes to whitespace and nameof() * Updated iOS and UWP wirth async image sources * A few fixes and WPF support * A few fixes for Android after the big merge * Updated a few more loaders: - ios - macos - tizen - gtk * Fix a few things after the merge * - cast type to FileImageSource * fix setting of title content if icon doesn't load * fix IButtonLayoutManager to return correct control * remove cast and add pack api * - fix timing issues with layout/invalidation * - remove aggresive element invalidations for now * first set of api changes * obsolete old apis and create new ones for ImageSource * obsolete messages and static ordering fix * add tests * switch default on windows to show images on tabs * - XStatic obsolete fix * fix NPC test and bring back alert check on uwp Fixes #3207 Fixes #4689 --- .../AppBarIconColors.cs | 2 +- .../BottomTabbedPageTests.cs | 14 +- .../Bugzilla22401.cs | 6 +- .../Bugzilla27417.cs | 8 +- .../Bugzilla30835.cs | 2 +- .../Bugzilla31255.cs | 2 +- .../Bugzilla31602.cs | 4 +- .../Bugzilla32801.cs | 4 +- .../Bugzilla32865.cs | 4 +- .../Bugzilla40073.cs | 2 +- .../Bugzilla40824.cs | 2 +- .../Bugzilla42364.cs | 2 +- .../Bugzilla53909.cs | 2 +- .../DesktopSupportTestPage.cs | 2 +- .../GitHub1702.cs | 10 +- .../Issue1305.cs | 6 +- .../Issue1323.cs | 4 +- .../Issue1342.cs | 2 +- .../Issue1461.cs | 2 +- .../Issue1705_2.cs | 4 +- .../Issue1898.cs | 16 +- .../Issue198.cs | 8 +- .../Issue2222.cs | 2 +- .../Issue2628.cs | 4 +- .../Issue2818.cs | 2 +- .../Issue2948.cs | 2 +- .../Issue2976.cs | 8 +- .../Issue2993.cs | 4 +- .../Issue3089.cs | 2 +- .../Issue4484.cs | 2 +- .../Issue4597.cs | 6 +- .../Issue4915.xaml | 19 + .../Issue4915.xaml.cs | 62 ++++ .../Issue5057.xaml.cs | 4 +- .../Issue889.cs | 6 +- .../Xamarin.Forms.Controls.Issues.Shared.projitems | 9 + Xamarin.Forms.Controls/App.cs | 10 +- .../AutomationPropertiesGallery.cs | 2 +- .../ControlGalleryPages/FlowDirectionGallery.cs | 4 +- .../ControlGalleryPages/ToolbarItems.cs | 4 +- Xamarin.Forms.Controls/CoreGallery.cs | 4 +- .../CoreGalleryPages/ButtonCoreGalleryPage.cs | 4 +- .../CoreGalleryPages/SliderCoreGalleryPage.cs | 2 +- .../GalleryPages/BackgroundImageGallery.cs | 12 +- .../GalleryPages/ButtonGallery.cs | 2 +- .../GalleryPages/EditableList.cs | 2 +- .../GalleryPages/ImageSourcesGallery.cs | 413 +++++++++++++++++++++ .../GalleryPages/MacOSTestGallery.cs | 14 +- .../GalleryPages/TemplatedTabbedGallery.cs | 2 +- .../GalleryPages/TitleView.xaml.cs | 6 +- Xamarin.Forms.Controls/HanselForms/BaseView.cs | 2 +- .../HanselForms/BlogPage.xaml.cs | 2 +- .../Xamarin.Forms.Controls.csproj | 1 + .../PlatformQueries.cs | 2 +- Xamarin.Forms.Core.UnitTests/ButtonUnitTest.cs | 6 +- .../NotifiedPropertiesTests.cs | 2 +- Xamarin.Forms.Core/Button.cs | 23 +- Xamarin.Forms.Core/FileImageSource.cs | 2 + Xamarin.Forms.Core/FontImageSource.cs | 2 + Xamarin.Forms.Core/ImageElement.cs | 2 +- Xamarin.Forms.Core/ImageSource.cs | 2 + .../Internals}/AsyncValue.cs | 39 +- Xamarin.Forms.Core/MenuItem.cs | 16 +- Xamarin.Forms.Core/NavigationPage.cs | 8 +- Xamarin.Forms.Core/Page.cs | 34 +- .../WindowsSpecific/TabbedPage.cs | 2 +- Xamarin.Forms.Core/Properties/AssemblyInfo.cs | 2 +- Xamarin.Forms.Core/Slider.cs | 16 +- Xamarin.Forms.Core/StackLayout.cs | 11 +- Xamarin.Forms.Core/StreamImageSource.cs | 2 + Xamarin.Forms.Core/ToolbarItem.cs | 2 +- Xamarin.Forms.Core/UriImageSource.cs | 2 + .../MaterialButtonRenderer.cs | 7 +- .../AppCompat/ButtonRenderer.cs | 7 +- .../AppCompat/MasterDetailPageRenderer.cs | 10 +- .../AppCompat/NavigationPageRenderer.cs | 51 +-- .../AppCompat/TabbedPageRenderer.cs | 41 +- .../ButtonLayoutManager.cs | 46 +-- Xamarin.Forms.Platform.Android/CellAdapter.cs | 7 +- .../Extensions/ImageViewExtensions.cs | 46 +-- .../FastRenderers/AutomationPropertiesProvider.cs | 5 +- .../FastRenderers/ButtonRenderer.cs | 8 +- .../FastRenderers/ImageElementManager.cs | 2 +- .../IButtonLayoutRenderer.cs | 11 +- Xamarin.Forms.Platform.Android/Platform.cs | 43 +-- .../Renderers/ButtonRenderer.cs | 73 ++-- .../Renderers/MasterDetailRenderer.cs | 10 +- .../Renderers/PageRenderer.cs | 36 +- .../Renderers/ShellFlyoutContentRenderer.cs | 25 +- .../Renderers/ShellItemRenderer.cs | 26 +- .../Renderers/ShellSearchView.cs | 43 +-- .../Renderers/ShellToolbarTracker.cs | 23 +- .../Renderers/SliderRenderer.cs | 14 +- Xamarin.Forms.Platform.Android/ResourceManager.cs | 197 +++++++++- Xamarin.Forms.Platform.GTK/Cells/CellBase.cs | 10 +- .../Cells/ImageCellRenderer.cs | 38 +- Xamarin.Forms.Platform.GTK/Controls/Carousel.cs | 16 +- Xamarin.Forms.Platform.GTK/Controls/ImageButton.cs | 20 - .../Controls/NotebookWrapper.cs | 7 +- Xamarin.Forms.Platform.GTK/Controls/Page.cs | 16 +- .../Extensions/ImageExtensions.cs | 123 ++++++ .../Extensions/PageExtensions.cs | 12 - Xamarin.Forms.Platform.GTK/GtkToolbarTracker.cs | 31 +- .../IVisualNativeElementRenderer.cs | 9 + .../Renderers/AbstractPageRenderer.cs | 4 +- .../Renderers/ButtonRenderer.cs | 22 +- .../Renderers/CarouselPageRenderer.cs | 2 +- .../Renderers/ImageRenderer.cs | 38 +- .../Renderers/MasterDetailPageRenderer.cs | 18 +- .../Renderers/NavigationPageRenderer.cs | 10 +- .../Renderers/TabbedPageRenderer.cs | 8 +- .../VisualElementRenderer.cs | 4 +- .../Xamarin.Forms.Platform.GTK.csproj | 1 + .../Cells/ImageCellRenderer.cs | 33 +- .../Extensions/NSImageExtensions.cs | 125 ++++++- .../Extensions/NSMenuExtensions.cs | 18 +- .../NativeToolbarTracker.cs | 15 +- .../Renderers/ButtonRenderer.cs | 25 +- .../Renderers/CarouselPageRenderer.cs | 22 +- .../Renderers/ImageRenderer.cs | 32 +- .../Renderers/PageRenderer.cs | 20 +- .../Renderers/TabbedPageRenderer.cs | 39 +- .../Extensions/ImageExtensions.cs | 8 + .../Native/ToolbarItemButton.cs | 6 +- .../Renderers/ButtonRenderer.cs | 6 +- .../Renderers/PageRenderer.cs | 11 +- .../Renderers/TabbedPageRenderer.cs | 10 +- Xamarin.Forms.Platform.Tizen/ResourcePath.cs | 5 + Xamarin.Forms.Platform.UAP/BackgroundTracker.cs | 12 +- Xamarin.Forms.Platform.UAP/ButtonRenderer.cs | 34 +- Xamarin.Forms.Platform.UAP/Extensions.cs | 26 +- .../Extensions/ImageExtensions.cs | 99 ++++- .../FileImageSourceHandler.cs | 16 +- .../FontImageSourceHandler.cs | 28 +- Xamarin.Forms.Platform.UAP/FormsSlider.cs | 7 +- Xamarin.Forms.Platform.UAP/IIconElementHandler.cs | 11 + Xamarin.Forms.Platform.UAP/ImageButtonRenderer.cs | 5 +- Xamarin.Forms.Platform.UAP/ImageConverter.cs | 14 +- Xamarin.Forms.Platform.UAP/ImageElementManager.cs | 27 +- Xamarin.Forms.Platform.UAP/ImageRenderer.cs | 2 +- ...erter.cs => ImageSourceIconElementConverter.cs} | 11 +- .../MasterDetailPageRenderer.cs | 2 +- .../NavigationPageRenderer.cs | 2 +- Xamarin.Forms.Platform.UAP/Platform.cs | 12 +- Xamarin.Forms.Platform.UAP/Resources.xaml | 2 +- Xamarin.Forms.Platform.UAP/SliderRenderer.cs | 8 +- Xamarin.Forms.Platform.UAP/TabbedPageRenderer.cs | 3 - .../Xamarin.Forms.Platform.UAP.csproj | 4 +- .../Converters/ImageConverter.cs | 21 +- .../Extensions/ImageExtensions.cs | 33 ++ .../Renderers/ButtonRenderer.cs | 12 +- .../Renderers/ImageRenderer.cs | 37 +- .../Renderers/VisualPageRenderer.cs | 22 +- Xamarin.Forms.Platform.WPF/WPFResources.xaml | 2 +- .../Extensions/ColorExtensions.cs | 11 - .../Extensions/ToolbarItemExtensions.cs | 16 +- .../Renderers/ButtonLayoutManager.cs | 2 +- .../Renderers/CarouselPageRenderer.cs | 20 +- .../Renderers/ImageElementManager.cs | 137 ++++++- .../Renderers/NavigationRenderer.cs | 41 +- .../Renderers/PageRenderer.cs | 23 +- .../Renderers/PhoneMasterDetailRenderer.cs | 19 +- .../Renderers/ShellSectionRenderer.cs | 8 +- .../Renderers/SliderRenderer.cs | 17 +- .../Renderers/TabbedRenderer.cs | 11 +- .../Renderers/TabletMasterDetailRenderer.cs | 17 +- Xamarin.Forms.Xaml.UnitTests/XStatic.xaml.cs | 2 +- 167 files changed, 2094 insertions(+), 1078 deletions(-) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4915.xaml create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4915.xaml.cs create mode 100644 Xamarin.Forms.Controls/GalleryPages/ImageSourcesGallery.cs rename {Xamarin.Forms.Platform.UAP => Xamarin.Forms.Core/Internals}/AsyncValue.cs (64%) create mode 100644 Xamarin.Forms.Platform.GTK/IVisualNativeElementRenderer.cs create mode 100644 Xamarin.Forms.Platform.Tizen/Extensions/ImageExtensions.cs create mode 100644 Xamarin.Forms.Platform.UAP/IIconElementHandler.cs rename Xamarin.Forms.Platform.UAP/{FileImageSourcePathConverter.cs => ImageSourceIconElementConverter.cs} (56%) diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/AppBarIconColors.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/AppBarIconColors.cs index 98c0205..9a9d2b1 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/AppBarIconColors.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/AppBarIconColors.cs @@ -47,7 +47,7 @@ namespace Xamarin.Forms.Controls.Issues BarBackgroundColor = Color.Purple; BarTextColor = Color.White; Title = root.Title; - Icon = root.Icon; + IconImageSource = root.IconImageSource; } } } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/BottomTabbedPageTests.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/BottomTabbedPageTests.cs index a7bfc54..03593e3 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/BottomTabbedPageTests.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/BottomTabbedPageTests.cs @@ -40,8 +40,8 @@ namespace Xamarin.Forms.Controls.Issues var longerTest = new Button() { Text = "Manual Color Tests", BackgroundColor = Color.Blue }; - Children.Add(new ContentPage() { Title = "Page 1", Content = popButton1, Icon = "coffee.png" }); - Children.Add(new ContentPage() { Title = "Page 2", Content = popButton2, Icon = "bank.png" }); + Children.Add(new ContentPage() { Title = "Page 1", Content = popButton1, IconImageSource = "coffee.png" }); + Children.Add(new ContentPage() { Title = "Page 2", Content = popButton2, IconImageSource = "bank.png" }); Button btnChangeBarText = null; Button btnChangeBarItemColorText = null; Button btnChangeBarSelectedItemColorText = null; @@ -128,7 +128,7 @@ namespace Xamarin.Forms.Controls.Issues { Content = new Label() { Text = (Children.Count + 1).ToString() }, Title = (Children.Count + 1).ToString(), - Icon = "calculator.png" + IconImageSource = "calculator.png" }); btnRemovePage.IsEnabled = true; }), @@ -178,8 +178,8 @@ namespace Xamarin.Forms.Controls.Issues Children.Remove(Children.Last()); } - Children.Insert(1, new ContentPage(){ Icon = "bank.png" }); - Children.Insert(1, new ContentPage(){ Icon = "bank.png" }); + Children.Insert(1, new ContentPage(){ IconImageSource = "bank.png" }); + Children.Insert(1, new ContentPage(){ IconImageSource = "bank.png" }); int i = 0; Device.StartTimer(TimeSpan.FromSeconds(3), () => { @@ -199,7 +199,7 @@ namespace Xamarin.Forms.Controls.Issues { throw new Exception("Removing page caused Current Page to Change"); } - Children.Insert(1, new ContentPage(){ Icon = "bank.png" }); + Children.Insert(1, new ContentPage(){ IconImageSource = "bank.png" }); CurrentPage = Children[1]; } else if(i == 2) @@ -246,7 +246,7 @@ namespace Xamarin.Forms.Controls.Issues { Title = "Test", Content = layout, - Icon = "calculator.png" + IconImageSource = "calculator.png" }); } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla22401.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla22401.cs index b066214..eda51ff 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla22401.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla22401.cs @@ -46,7 +46,7 @@ namespace Xamarin.Forms.Controls.Issues }) }; - Master = new ContentPage { Title = "master", Icon = "menuIcon.png", Content = listView }; + Master = new ContentPage { Title = "master", IconImageSource = "menuIcon.png", Content = listView }; listView.ItemSelected += (sender, e) => { Detail = CreateDetailPage (string.Format("Page {0}", (e.SelectedItem as Person).Name)); @@ -103,8 +103,8 @@ namespace Xamarin.Forms.Controls.Issues } }; - var tbiBank = new ToolbarItem { Command = new Command (() => { }), Icon = "bank.png" }; - var tbiCalc = new ToolbarItem { Command = new Command (() => { }), Icon = "calculator.png" }; + var tbiBank = new ToolbarItem { Command = new Command (() => { }), IconImageSource = "bank.png" }; + var tbiCalc = new ToolbarItem { Command = new Command (() => { }), IconImageSource = "calculator.png" }; page.ToolbarItems.Add (tbiBank); page.ToolbarItems.Add (tbiCalc); diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla27417.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla27417.cs index 5ae2970..0d55631 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla27417.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla27417.cs @@ -31,7 +31,7 @@ Button 8 have the image on the right and the text on the left." }; new Button { HeightRequest = 500, // Making sure that the image still gets centered vertically even if the HeightRequest won't be honored - Image = "coffee.png" + ImageSource = "coffee.png" } } }; @@ -53,9 +53,9 @@ Button 8 have the image on the right and the text on the left." }; HorizontalOptions = LayoutOptions.Center, Children = { - new Button { WidthRequest = 200, HeightRequest = 300, Image = "coffee.png" }, + new Button { WidthRequest = 200, HeightRequest = 300, ImageSource = "coffee.png" }, new Button { Text = "Click Me", BackgroundColor = Color.Gray }, - new Button { Image = "coffee.png", BackgroundColor = Color.Gray }, + new Button { ImageSource = "coffee.png", BackgroundColor = Color.Gray }, CreateButton(new Button.ButtonContentLayout(Button.ButtonContentLayout.ImagePosition.Left, 10)), CreateButton(new Button.ButtonContentLayout(Button.ButtonContentLayout.ImagePosition.Top, 10)), CreateButton(new Button.ButtonContentLayout(Button.ButtonContentLayout.ImagePosition.Bottom, 10)), @@ -72,7 +72,7 @@ Button 8 have the image on the right and the text on the left." }; return new Button { Text = "Click Me", - Image = "coffee.png", + ImageSource = "coffee.png", ContentLayout = layout, BackgroundColor = Color.Gray }; diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla30835.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla30835.cs index 7e57d22..033d2f8 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla30835.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla30835.cs @@ -99,7 +99,7 @@ namespace Xamarin.Forms.Controls.Issues public MenuPage () { - Icon = "bank.png"; + IconImageSource = "bank.png"; Title = "Carsousel Memory Bug"; BackgroundColor = Color.FromHex ("#000000"); diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31255.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31255.cs index 896039c..a58f05f 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31255.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31255.cs @@ -63,7 +63,7 @@ namespace Xamarin.Forms.Controls.Issues public Page2 () { Master = new Page () { Title = "Master", - Icon = "Icon.png" + IconImageSource = "Icon.png" }; Detail = new Page () { Title = "Detail" }; } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31602.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31602.cs index 702e1d9..65f7c1e 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31602.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla31602.cs @@ -35,7 +35,7 @@ namespace Xamarin.Forms.Controls.Issues public SidemenuPage () { Title = "Side"; - Icon = "menuIcon.png"; + IconImageSource = "menuIcon.png"; var lbl = new Label { Text = "SideMenu" }; var btn = new Button { Text = "Menu Opener" }; @@ -49,7 +49,7 @@ namespace Xamarin.Forms.Controls.Issues } public void ChangeIcon() { - Icon = "bank.png"; + IconImageSource = "bank.png"; } } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32801.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32801.cs index 8002867..5554d8d 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32801.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32801.cs @@ -17,8 +17,8 @@ namespace Xamarin.Forms.Controls.Issues { protected override void Init () { - Children.Add (new NavigationPage (new TestDemoPage (1)) { Title = "Tab", Icon = "bank.png" }); - Children.Add (new NavigationPage (new TestDemoPage (1)) { Title = "Tab 1", Icon = "bank.png" }); + Children.Add (new NavigationPage (new TestDemoPage (1)) { Title = "Tab", IconImageSource = "bank.png" }); + Children.Add (new NavigationPage (new TestDemoPage (1)) { Title = "Tab 1", IconImageSource = "bank.png" }); } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32865.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32865.cs index 2cf416e..473125e 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32865.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla32865.cs @@ -25,11 +25,11 @@ namespace Xamarin.Forms.Controls.Issues public void ChangeIcon() { - Master.Icon = "settings"; + Master.IconImageSource = "settings"; } public void ChangeIcon2() { - Master.Icon = "menuIcon"; + Master.IconImageSource = "menuIcon"; } } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40073.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40073.cs index 6c4a328..a370c70 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40073.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40073.cs @@ -27,7 +27,7 @@ namespace Xamarin.Forms.Controls.Issues var thePage = new TabbedPage(); thePage.Children.Add(_theContent); - thePage.ToolbarItems.Add(new ToolbarItem() { Text = "Refresh", Icon = "coffee.png" }); + thePage.ToolbarItems.Add(new ToolbarItem() { Text = "Refresh", IconImageSource = "coffee.png" }); PushAsync(thePage); } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40824.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40824.cs index 09b853e..d612d57 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40824.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla40824.cs @@ -32,7 +32,7 @@ namespace Xamarin.Forms.Controls.Issues cell.ContextActions.Add(new MenuItem { Text = "Action", - Icon = "icon", + IconImageSource = "icon", IsDestructive = true, Command = new Command(() => DisplayAlert("TITLE", "Context action invoked", "Ok")), }); diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla42364.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla42364.cs index 6a540db..37aace8 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla42364.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla42364.cs @@ -36,7 +36,7 @@ namespace Xamarin.Forms.Controls.Issues cell.ContextActions.Add(new MenuItem { Text = "Action", - Icon = "icon", + IconImageSource = "icon", IsDestructive = true, Command = new Command(() => DisplayAlert("TITLE", "Context action invoked", "Ok")), }); diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla53909.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla53909.cs index 854aeb7..c1697b0 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla53909.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla53909.cs @@ -16,7 +16,7 @@ namespace Xamarin.Forms.Controls.Issues { var tbi = new ToolbarItem(); - tbi.Icon = "synchronize.png"; + tbi.IconImageSource = "synchronize.png"; tbi.Order = ToolbarItemOrder.Primary; tbi.Priority = 0; diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/DesktopSupportTestPage.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/DesktopSupportTestPage.cs index 15cabca..174b80e 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/DesktopSupportTestPage.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/DesktopSupportTestPage.cs @@ -173,7 +173,7 @@ namespace Xamarin.Forms.Controls.Issues var item = new MenuItem { Text = $"hello menu item {i}.{j}" }; if (withImage) { - item.Icon = Icon = "bank.png"; + item.IconImageSource = IconImageSource = "bank.png"; } if (addShortcut) { diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/GitHub1702.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/GitHub1702.cs index a3d8491..992996f 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/GitHub1702.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/GitHub1702.cs @@ -21,35 +21,35 @@ namespace Xamarin.Forms.Controls.Issues { new Button() { - Image = "coffee.png", + ImageSource = "coffee.png", BackgroundColor = Color.GreenYellow, Text = "No padding? Height 100", HeightRequest = 100, }, new Button() { - Image = "coffee.png", + ImageSource = "coffee.png", BackgroundColor = Color.Green, Padding = new Thickness(100, 0, 0, 0), Text = "Do I have left padding? I should have left padding.", }, new Button() { - Image = "coffee.png", + ImageSource = "coffee.png", BackgroundColor = Color.LawnGreen, Padding = new Thickness(0, 30, 0, 0), Text = "Do I have top padding? I should have top padding." }, new Button() { - Image = "coffee.png", + ImageSource = "coffee.png", BackgroundColor = Color.LightGreen, Padding = new Thickness(0, 0, 100, 0), Text = "Do I have right padding? I should have right padding." }, new Button() { - Image = "coffee.png", + ImageSource = "coffee.png", BackgroundColor = Color.ForestGreen, Padding = new Thickness(0, 0, 0, 30), Text = "Do I have bottom padding? I should have bottom padding." diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1305.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1305.cs index 520970c..e86c09f 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1305.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1305.cs @@ -13,7 +13,7 @@ namespace Xamarin.Forms.Controls.Issues { var settings = new ToolbarItem { - Icon = "bank.png", + IconImageSource = "bank.png", Text = "Settings", Command = new Command(ShowSettingsPage), }; @@ -24,7 +24,7 @@ namespace Xamarin.Forms.Controls.Issues Title = "Test Page"; - Icon = "Icon.png"; + IconImageSource = "Icon.png"; } @@ -44,7 +44,7 @@ namespace Xamarin.Forms.Controls.Issues Title = "Settings"; - Icon = "bank.png"; + IconImageSource = "bank.png"; } } } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1323.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1323.cs index cb914fc..2d20252 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1323.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1323.cs @@ -34,10 +34,10 @@ namespace Xamarin.Forms.Controls.Issues base.OnAppearing(); BarTextColor = Color.White; Children.RemoveAt(1); - Children.Insert(1, new ContentPage { Title = "Page5", Icon = "Loyalty.png" }); + Children.Insert(1, new ContentPage { Title = "Page5", IconImageSource = "Loyalty.png" }); Children.RemoveAt(3); - Children.Insert(2, new ContentPage { Title = "Page6", Icon = "Gift.png" }); + Children.Insert(2, new ContentPage { Title = "Page6", IconImageSource = "Gift.png" }); BarTextColor = Color.White; } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1342.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1342.cs index 0affb7c..056f39d 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1342.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1342.cs @@ -149,7 +149,7 @@ namespace Xamarin.Forms.Controls.Issues { public ListPageCode() { - Icon = "coffee.png"; + IconImageSource = "coffee.png"; ListView view = new ListView(ListViewCachingStrategy.RecycleElement); Content = view; diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1461.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1461.cs index f4fa871..38b60e6 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1461.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1461.cs @@ -218,7 +218,7 @@ namespace Xamarin.Forms.Controls.Issues btn.Clicked += bnToggle_Clicked; Master = new ContentPage { Title = string.Format ("Master sample for {0}", state), - Icon = "bank.png", + IconImageSource = "bank.png", Padding = Device.RuntimePlatform == Device.iOS ? new Thickness(5, 60, 5, 5) : new Thickness(5), Content = new StackLayout { Children = { diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1705_2.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1705_2.cs index b8e7257..6407ce2 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1705_2.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1705_2.cs @@ -27,9 +27,9 @@ namespace Xamarin.Forms.Controls.Issues public Issue1705_2() { - _page1 = new ContentPage { Title = "TabPage1", Icon = "bank.png" }; + _page1 = new ContentPage { Title = "TabPage1", IconImageSource = "bank.png" }; _page1.Content = new StackLayout { Padding = new Thickness(0, 16), Children = { new Label { Text = "This is TabPage1 using bank.png icon.", FontAttributes = FontAttributes.Bold } } }; - _page2 = new ContentPage { Title = "TabPage2", Icon = "coffee.png" }; + _page2 = new ContentPage { Title = "TabPage2", IconImageSource = "coffee.png" }; _page2.Content = new StackLayout { Padding = new Thickness(0, 16), Children = { new Label { Text = "This is TabPage2 using coffee.png icon.", FontAttributes = FontAttributes.Bold } } }; _page3 = new ContentPage { Title = "TabPage3" }; _page3.Content = new StackLayout { Padding = new Thickness(0, 16), Children = { new Label { Text = "This is TabPage3 without icon.", FontAttributes = FontAttributes.Bold } } }; diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1898.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1898.cs index 6bc3604..8296756 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1898.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1898.cs @@ -79,8 +79,8 @@ namespace Xamarin.Forms.Controls.Issues internal static void SetupTabbedPage(TabbedPage tabbedPage, AToolbarPlacement placement) { - ContentPage Issue1898PageOne = new ContentPage() { Title = Title1, Icon = "bank.png" }; - ContentPage Issue1898PageTwo = new ContentPage() { Title = Title2, Icon = "bank.png" }; + ContentPage Issue1898PageOne = new ContentPage() { Title = Title1, IconImageSource = "bank.png" }; + ContentPage Issue1898PageTwo = new ContentPage() { Title = Title2, IconImageSource = "bank.png" }; Issue1898PageOne.Content = new StackLayout @@ -90,9 +90,9 @@ namespace Xamarin.Forms.Controls.Issues { new Label(){ Text = "Click through each button on each tab to make sure they do what they say they do" }, new Button(){ Text = ChangeTitle1, Command = new Command(() => Issue1898PageOne.Title = ChangeTitle1) }, - new Button(){ Text = ChangeIcon1, Command = new Command(() => Issue1898PageOne.Icon = "coffee.png")}, - new Button(){ Text = ChangeIconPage2, Command = new Command(() => Issue1898PageTwo.Icon = "coffee.png")}, - new Button(){ Text = ChangeIcon1Null, Command = new Command(() => Issue1898PageOne.Icon = null)}, + new Button(){ Text = ChangeIcon1, Command = new Command(() => Issue1898PageOne.IconImageSource = "coffee.png")}, + new Button(){ Text = ChangeIconPage2, Command = new Command(() => Issue1898PageTwo.IconImageSource = "coffee.png")}, + new Button(){ Text = ChangeIcon1Null, Command = new Command(() => Issue1898PageOne.IconImageSource = null)}, } }; @@ -103,9 +103,9 @@ namespace Xamarin.Forms.Controls.Issues Children = { new Button(){ Text = ChangeTitle2, Command = new Command(() => Issue1898PageTwo.Title = ChangeTitle2) }, - new Button(){ Text = ChangeIcon2, Command = new Command(() => Issue1898PageTwo.Icon = "bank.png")}, - new Button(){ Text = ChangeIconPage1, Command = new Command(() => Issue1898PageOne.Icon = "calculator.png")}, - new Button(){ Text = ChangeIcon2Null, Command = new Command(() => Issue1898PageTwo.Icon = null)}, + new Button(){ Text = ChangeIcon2, Command = new Command(() => Issue1898PageTwo.IconImageSource = "bank.png")}, + new Button(){ Text = ChangeIconPage1, Command = new Command(() => Issue1898PageOne.IconImageSource = "calculator.png")}, + new Button(){ Text = ChangeIcon2Null, Command = new Command(() => Issue1898PageTwo.IconImageSource = null)}, } }; diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue198.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue198.cs index 211a255..dada9f5 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue198.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue198.cs @@ -27,13 +27,13 @@ namespace Xamarin.Forms.Controls.Issues leavePageBtn.Clicked += (s, e) => Navigation.PopModalAsync (); var navigationPageOne = new NavigationPage (new ContentPage { - Icon = "calculator.png", + IconImageSource = "calculator.png", Content = leavePageBtn }) { Title = "Page One", }; var navigationPageTwo = new NavigationPage (new ContentPage { - Icon = "calculator.png", + IconImageSource = "calculator.png", }) { Title = "Page Two", }; @@ -41,11 +41,11 @@ namespace Xamarin.Forms.Controls.Issues Title = "No Crash", }) { Title = "Page Three", - Icon = "calculator.png" + IconImageSource = "calculator.png" }; var navigationPageFour = new NavigationPage (new ContentPage ()) { Title = "Page Four", - Icon = "calculator.png" + IconImageSource = "calculator.png" }; Children.Add (navigationPageOne); diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2222.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2222.cs index 60e635a..0cca415 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2222.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2222.cs @@ -16,7 +16,7 @@ namespace Xamarin.Forms.Controls.Issues { protected override void Init () { - var tbItem = new ToolbarItem { Text = "hello", Icon="wrongName" }; + var tbItem = new ToolbarItem { Text = "hello", IconImageSource="wrongName" }; ToolbarItems.Add(tbItem); PushAsync (new Issue22221 ()); diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2628.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2628.cs index ffdeaaa..fa5fd0d 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2628.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2628.cs @@ -11,7 +11,7 @@ namespace Xamarin.Forms.Controls.Issues public Issue2628 () { var button1 = new Button { Text = "Click !!!!!!!!!!"}; - BackgroundImage="bank.png"; + BackgroundImageSource="bank.png"; button1.Clicked += ButtonAction; Content = new StackLayout { @@ -25,7 +25,7 @@ namespace Xamarin.Forms.Controls.Issues public void ButtonAction(object sender, EventArgs args) { - BackgroundImage="calculator.png"; + BackgroundImageSource="calculator.png"; } } } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2818.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2818.cs index 2b6ca3f..6934d2a 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2818.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2818.cs @@ -15,7 +15,7 @@ namespace Xamarin.Forms.Controls.Issues { Title = "Master", BackgroundColor = Color.SkyBlue, - Icon = "menuIcon" + IconImageSource = "menuIcon" }; Detail = new NavigationPage(new ContentPage diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2948.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2948.cs index 20cdd96..c6856f1 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2948.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2948.cs @@ -68,7 +68,7 @@ namespace Xamarin.Forms.Controls.Issues public ContractsPage () { Title = "Contracts"; - Icon = "bank.png"; + IconImageSource = "bank.png"; var grid = new Grid(); grid.ColumnDefinitions.Add(new ColumnDefinition()); diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2976.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2976.cs index 929e3c1..09b1836 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2976.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2976.cs @@ -19,16 +19,16 @@ namespace Xamarin.Forms.Controls.Issues { // built-in Xamarin.Forms controls - Children.Add (new XamarinFormsPage {Title = "DEMOA", Icon = "bank.png"}); + Children.Add (new XamarinFormsPage {Title = "DEMOA", IconImageSource = "bank.png"}); // custom renderer for the list, using a native built-in cell type - Children.Add (new NativeListPage {Title = "DEMOB", Icon = "bank.png"}); + Children.Add (new NativeListPage {Title = "DEMOB", IconImageSource = "bank.png"}); // built in Xamarin.Forms list, but with a native cell custom-renderer - Children.Add (new XamarinFormsNativeCellPage {Title = "DEMOC", Icon = "bank.png"}); + Children.Add (new XamarinFormsNativeCellPage {Title = "DEMOC", IconImageSource = "bank.png"}); // custom renderer for the list, using a native cell that has been custom-defined in native code - Children.Add (new NativeListViewPage2 {Title = "DEMOD", Icon = "bank.png"}); + Children.Add (new NativeListViewPage2 {Title = "DEMOD", IconImageSource = "bank.png"}); } #if UITEST diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2993.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2993.cs index 027b20b..148aa83 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2993.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2993.cs @@ -38,7 +38,7 @@ namespace Xamarin.Forms.Controls.Issues var contentPage = new ContentPage() { Content = grid, - Icon = "coffee.png" + IconImageSource = "coffee.png" }; return contentPage; @@ -48,7 +48,7 @@ namespace Xamarin.Forms.Controls.Issues Children.Add((createPage())); Children.Add(new ContentPage() { - Icon = "calculator.png", + IconImageSource = "calculator.png", Content = new Button() { Text = "Click Me", diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue3089.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue3089.cs index 563a09e..599ca66 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue3089.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue3089.cs @@ -110,7 +110,7 @@ namespace Xamarin.Forms.Controls.Issues { public ListPageCode() { - Icon = "coffee.png"; + IconImageSource = "coffee.png"; ListView view = new ListView(ListViewCachingStrategy.RecycleElement); Content = view; diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4484.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4484.cs index a99ff4f..e2be114 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4484.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4484.cs @@ -32,7 +32,7 @@ namespace Xamarin.Forms.Controls.Issues Orientation = StackOrientation.Horizontal, Children = { - new Button(){ Image = "bank.png", AutomationId="bank"}, + new Button(){ ImageSource = "bank.png", AutomationId="bank"}, new Image(){Source = "bank.png"}, new ImageButton{Source = "bank.png"} } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4597.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4597.cs index 6b07327..af0558b 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4597.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4597.cs @@ -37,7 +37,7 @@ namespace Xamarin.Forms.Controls.Issues protected override void Init() { _image = new Image() { Source = _fileName, AutomationId = _fileName, ClassId = "Something" }; - _button = new Button() { Image = _fileName, AutomationId = _fileName }; + _button = new Button() { ImageSource = _fileName, AutomationId = _fileName }; _imageButton = new ImageButton() { Source = _fileName, AutomationId = _fileName }; _listView = new ListView() { @@ -63,7 +63,7 @@ namespace Xamarin.Forms.Controls.Issues if (button.Text == _disappearText) { _image.Source = null; - _button.Image = null; + _button.ImageSource = null; _imageButton.Source = null; _listView.ItemsSource = new string[] { null }; Device.BeginInvokeOnMainThread(() => button.Text = _appearText); @@ -71,7 +71,7 @@ namespace Xamarin.Forms.Controls.Issues else { _image.Source = _fileName; - _button.Image = _fileName; + _button.ImageSource = _fileName; _imageButton.Source = _fileName; _listView.ItemsSource = new string[] { _fileName }; Device.BeginInvokeOnMainThread(() => button.Text = _disappearText); diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4915.xaml b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4915.xaml new file mode 100644 index 0000000..8c48f5d --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4915.xaml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4915.xaml.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4915.xaml.cs new file mode 100644 index 0000000..69d9099 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue4915.xaml.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Xamarin.Forms; +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; +using Xamarin.Forms.Xaml; +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Github, 4915, "Unify the image handling")] + public class Issue4915 : TestTabbedPage + { + protected override void Init() + { + var navPage = new NavigationPage(new Issue4915ContentPage()) { Title = "nav page 1" }; +#pragma warning disable CS0618 // Type or member is obsolete + navPage.SetBinding(Page.IconProperty, "Image"); +#pragma warning restore CS0618 // Type or member is obsolete + navPage.BindingContext = new Issue4915ContentPage.ViewModel(); + + Children.Add(navPage); + Children.Add(new Issue4915ContentPage() { Title = "page 2" }); + } + +#if UITEST + [Test] + public void LegacyImageSourceProperties() + { + RunningApp.WaitForElement("Nothing Crashed"); + } +#endif + + } + + [Preserve(AllMembers = true)] + public partial class Issue4915ContentPage : ContentPage + { + public Issue4915ContentPage() + { +#if APP + InitializeComponent(); +#endif + BindingContext = new ViewModel(); + + } + + [Preserve(AllMembers = true)] + public class ViewModel + { + public string Image { get; set; } = "coffee.png"; + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue5057.xaml.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue5057.xaml.cs index 357bf97..f7f035e 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue5057.xaml.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue5057.xaml.cs @@ -25,7 +25,7 @@ namespace Xamarin.Forms.Controls.Issues void BtnSetBkgndImg_Clicked(object sender, System.EventArgs e) { - BackgroundImage = "test.jpg"; + BackgroundImageSource = "test.jpg"; } void BtnSetBkgndColorDefault_Clicked(object sender, System.EventArgs e) @@ -35,7 +35,7 @@ namespace Xamarin.Forms.Controls.Issues void BtnSetBkgndImgNull_Clicked(object sender, System.EventArgs e) { - BackgroundImage = null; + BackgroundImageSource = null; } } #endif diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue889.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue889.cs index 75b08a1..a2a8ea4 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue889.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue889.cs @@ -43,7 +43,7 @@ namespace Xamarin.Forms.Controls.Issues var master = new ContentPage { Title = "Master", - Icon = "bank.png", + IconImageSource = "bank.png", Content = listView }; @@ -114,8 +114,8 @@ namespace Xamarin.Forms.Controls.Issues } }; - tabOne.SetValue (IconProperty, "bank.png"); - tabTwo.SetValue (IconProperty, "coffee.png"); + tabOne.SetValue (IconImageSourceProperty, "bank.png"); + tabTwo.SetValue (IconImageSourceProperty, "coffee.png"); Children.Add (tabOne); Children.Add (tabTwo); } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index 2c6d298..062a886 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -11,6 +11,9 @@ + + Code + @@ -1166,4 +1169,10 @@ MSBuild:UpdateDesignTimeXaml + + + Designer + MSBuild:UpdateDesignTimeXaml + + \ No newline at end of file diff --git a/Xamarin.Forms.Controls/App.cs b/Xamarin.Forms.Controls/App.cs index aa1af7f..38bc8e2 100644 --- a/Xamarin.Forms.Controls/App.cs +++ b/Xamarin.Forms.Controls/App.cs @@ -37,6 +37,8 @@ namespace Xamarin.Forms.Controls SetMainPage(CreateDefaultMainPage()); //TestMainPageSwitches(); + + //SetMainPage(new ImageSourcesGallery()); } protected override void OnStart() @@ -109,7 +111,7 @@ namespace Xamarin.Forms.Controls { var layout = new StackLayout { BackgroundColor = Color.Red }; layout.Children.Add(new Label { Text = "This is master Page" }); - var master = new ContentPage { Title = "Master", Content = layout, BackgroundColor = Color.SkyBlue, Icon ="menuIcon" }; + var master = new ContentPage { Title = "Master", Content = layout, BackgroundColor = Color.SkyBlue, IconImageSource ="menuIcon" }; master.On().SetUseSafeArea(true); var mdp = new MasterDetailPage { @@ -117,11 +119,11 @@ namespace Xamarin.Forms.Controls Master = master, Detail = CoreGallery.GetMainPage() }; - master.Icon.AutomationId = "btnMDPAutomationID"; + master.IconImageSource.AutomationId = "btnMDPAutomationID"; mdp.SetAutomationPropertiesName("Main page"); mdp.SetAutomationPropertiesHelpText("Main page help text"); - mdp.Master.Icon.SetAutomationPropertiesHelpText("This as MDP icon"); - mdp.Master.Icon.SetAutomationPropertiesName("MDPICON"); + mdp.Master.IconImageSource.SetAutomationPropertiesHelpText("This as MDP icon"); + mdp.Master.IconImageSource.SetAutomationPropertiesName("MDPICON"); return mdp; //return new XamStore.StoreShell(); diff --git a/Xamarin.Forms.Controls/ControlGalleryPages/AutomationPropertiesGallery.cs b/Xamarin.Forms.Controls/ControlGalleryPages/AutomationPropertiesGallery.cs index d446947..a92de15 100644 --- a/Xamarin.Forms.Controls/ControlGalleryPages/AutomationPropertiesGallery.cs +++ b/Xamarin.Forms.Controls/ControlGalleryPages/AutomationPropertiesGallery.cs @@ -69,7 +69,7 @@ namespace Xamarin.Forms.Controls this.SetAutomationPropertiesName("Accessibility Gallery Page"); this.SetAutomationPropertiesHelpText("Demonstrates accessibility settings"); - var toolbarItem = new ToolbarItem { Icon = "coffee.png" }; + var toolbarItem = new ToolbarItem { IconImageSource = "coffee.png" }; toolbarItem.SetAutomationPropertiesName(toolbarItemName); ToolbarItems.Add(toolbarItem); toolbarItem.Command = new Command(() => { Navigation.PushAsync(new ContentPage()); }); diff --git a/Xamarin.Forms.Controls/ControlGalleryPages/FlowDirectionGallery.cs b/Xamarin.Forms.Controls/ControlGalleryPages/FlowDirectionGallery.cs index 85f9274..17fa8e0 100644 --- a/Xamarin.Forms.Controls/ControlGalleryPages/FlowDirectionGallery.cs +++ b/Xamarin.Forms.Controls/ControlGalleryPages/FlowDirectionGallery.cs @@ -112,13 +112,13 @@ namespace Xamarin.Forms.Controls { var item = new ToolbarItem { - Icon = "coffee.png", + IconImageSource = "coffee.png", Text = "Item 1", }; var item2 = new ToolbarItem { - Icon = "bank.png", + IconImageSource = "bank.png", Text = "Item 2", }; diff --git a/Xamarin.Forms.Controls/ControlGalleryPages/ToolbarItems.cs b/Xamarin.Forms.Controls/ControlGalleryPages/ToolbarItems.cs index cf76f17..97f54a2 100644 --- a/Xamarin.Forms.Controls/ControlGalleryPages/ToolbarItems.cs +++ b/Xamarin.Forms.Controls/ControlGalleryPages/ToolbarItems.cs @@ -41,12 +41,12 @@ namespace Xamarin.Forms.Controls tb4.Text = "tb4"; tb4.Order = ToolbarItemOrder.Secondary; tb4.Command = command; - tb4.Icon = "coffee"; + tb4.IconImageSource = "coffee"; tb4.AutomationId = "toolbaritem_secondary2"; var tb5 = new ToolbarItem(); tb5.Text = "tb5"; - tb5.Icon = "bank.png"; + tb5.IconImageSource = "bank.png"; tb5.Order = ToolbarItemOrder.Secondary; tb5.Command = new Command(async () => { await Navigation.PushAsync(new ToolbarItems()); diff --git a/Xamarin.Forms.Controls/CoreGallery.cs b/Xamarin.Forms.Controls/CoreGallery.cs index 493e837..d855433 100644 --- a/Xamarin.Forms.Controls/CoreGallery.cs +++ b/Xamarin.Forms.Controls/CoreGallery.cs @@ -46,7 +46,7 @@ namespace Xamarin.Forms.Controls var toCrashButton = new Button { Text = "Crash Me" }; - var masterPage = new ContentPage { Title = "Menu", Icon = "bank.png", Content = toCrashButton }; + var masterPage = new ContentPage { Title = "Menu", IconImageSource = "bank.png", Content = toCrashButton }; var detailPage = new CoreRootPage(this, NavigationBehavior.PushModalAsync) { Title = "DetailPage" }; bool toggle = false; @@ -136,7 +136,7 @@ namespace Xamarin.Forms.Controls Children.Add(new NavigationPage(new Page()) { Title = "Rubriques", - Icon = "coffee.png", + IconImageSource = "coffee.png", BarBackgroundColor = Color.Blue, BarTextColor = Color.Aqua }); diff --git a/Xamarin.Forms.Controls/CoreGalleryPages/ButtonCoreGalleryPage.cs b/Xamarin.Forms.Controls/CoreGalleryPages/ButtonCoreGalleryPage.cs index 3a285a3..2a1844a 100644 --- a/Xamarin.Forms.Controls/CoreGalleryPages/ButtonCoreGalleryPage.cs +++ b/Xamarin.Forms.Controls/CoreGalleryPages/ButtonCoreGalleryPage.cs @@ -84,8 +84,8 @@ namespace Xamarin.Forms.Controls var imageContainer = new ViewContainer