--- /dev/null
+using Xamarin.Forms.CustomAttributes;
+using Xamarin.Forms.Internals;
+
+#if UITEST
+using Xamarin.UITest;
+using NUnit.Framework;
+#endif
+
+// Apply the default category of "Issues" to all of the tests in this assembly
+// We use this as a catch-all for tests which haven't been individually categorized
+#if UITEST
+[assembly: NUnit.Framework.Category("Issues")]
+#endif
+
+namespace Xamarin.Forms.Controls.Issues
+{
+ [Preserve(AllMembers = true)]
+ [Issue(IssueTracker.Bugzilla, 47923, "Vectors don\'t work in Images, and work badly in Buttons", PlatformAffected.Android)]
+ public class Bugzilla47923 : TestNavigationPage // or TestMasterDetailPage, etc ...
+ {
+ protected override void Init()
+ {
+ PushAsync(new LandingPage());
+ }
+ }
+
+ public class VectorImagePage : ContentPage
+ {
+ public VectorImagePage(Aspect aspect)
+ {
+ var scrollView = new ScrollView();
+ var stackLayout = new StackLayout
+ {
+ Orientation = StackOrientation.Vertical,
+ Spacing = 10
+ };
+
+ var vectors = new[] { "cartman", "heart", "error" };
+
+ for (var i = 0; i < vectors.Length; i++)
+ {
+ for (var j = 0; j < 3; j++)
+ {
+ var image = new Image
+ {
+ Source = vectors[i],
+ WidthRequest = j == 1 ? 150 : 300,
+ HeightRequest = j == 2 ? 150 : 300,
+ BackgroundColor = i == 0 ? Color.Red : (i == 1 ? Color.Green : Color.Yellow),
+ HorizontalOptions = LayoutOptions.Center,
+ Aspect = aspect
+ };
+ stackLayout.Children.Add(image);
+ }
+ }
+
+ scrollView.Content = stackLayout;
+ Content = scrollView;
+ }
+ }
+
+ public class LandingPage : ContentPage
+ {
+ public LandingPage()
+ {
+ var scrollView = new ScrollView();
+ var stackLayout = new StackLayout
+ {
+ Orientation = StackOrientation.Vertical,
+ HorizontalOptions = LayoutOptions.Center,
+ Spacing = 10
+ };
+
+ var button1 = new Button
+ {
+ Text = "AspectFit",
+ Command = new Command(() => { Navigation.PushAsync(new VectorImagePage(Aspect.AspectFit)); }),
+ HorizontalOptions = LayoutOptions.Center
+ };
+ stackLayout.Children.Add(button1);
+
+ var button2 = new Button
+ {
+ Text = "AspectFill",
+ Command = new Command(() => { Navigation.PushAsync(new VectorImagePage(Aspect.AspectFill)); }),
+ HorizontalOptions = LayoutOptions.Center
+ };
+ stackLayout.Children.Add(button2);
+
+ var button3 = new Button
+ {
+ Text = "Fill",
+ Command = new Command(() => { Navigation.PushAsync(new VectorImagePage(Aspect.Fill)); }),
+ HorizontalOptions = LayoutOptions.Center
+ };
+ stackLayout.Children.Add(button3);
+
+ scrollView.Content = stackLayout;
+ Content = scrollView;
+ }
+ }
+}
\ No newline at end of file