summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs')
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs84
1 files changed, 84 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs
new file mode 100644
index 00000000..f24344ee
--- /dev/null
+++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39458.cs
@@ -0,0 +1,84 @@
+using System;
+
+using Xamarin.Forms.CustomAttributes;
+
+#if UITEST
+using Xamarin.UITest;
+using NUnit.Framework;
+#endif
+
+namespace Xamarin.Forms.Controls
+{
+ [Preserve(AllMembers = true)]
+ [Issue(IssueTracker.Bugzilla, 39458, "[UWP/WinRT] Cannot Set CarouselPage.CurrentPage Inside Constructor", PlatformAffected.WinRT)]
+ public class Bugzilla39458 : TestCarouselPage
+ {
+ public class ChildPage : ContentPage
+ {
+ public ChildPage(int pageNumber)
+ {
+ var layout = new StackLayout();
+ var MyLabel = new Label {
+ VerticalOptions = LayoutOptions.Center,
+ HorizontalOptions = LayoutOptions.Center,
+ FontSize = 21,
+ TextColor = Color.White,
+ Text = $"This is page {pageNumber}"
+ };
+ var TestBtn = new Button {
+ Text = "Go to Page 2",
+ IsEnabled = false,
+ BackgroundColor = Color.White
+ };
+
+ if (pageNumber != 2)
+ {
+ TestBtn.IsEnabled = true;
+ TestBtn.Clicked += TestBtn_Clicked;
+ }
+
+ layout.Children.Add(MyLabel);
+ layout.Children.Add(TestBtn);
+ Content = layout;
+ }
+
+ private void TestBtn_Clicked(object sender, EventArgs e)
+ {
+ var carousel = Application.Current.MainPage as CarouselPage;
+ carousel.CurrentPage = carousel.Children[1];
+ }
+ }
+
+ public class DesiredPage : ChildPage
+ {
+ public DesiredPage(int pageNumber) : base(pageNumber)
+ {
+ }
+ }
+
+ protected override void Init()
+ {
+ var firstPage = new ChildPage(1);
+ firstPage.BackgroundColor = Color.Blue;
+ Children.Add(firstPage);
+
+ var secondPage = new DesiredPage(2);
+ secondPage.BackgroundColor = Color.Red;
+ Children.Add(secondPage);
+
+ var thirdPage = new ChildPage(3);
+ thirdPage.BackgroundColor = Color.Green;
+ Children.Add(thirdPage);
+
+ CurrentPage = secondPage;
+ }
+
+#if UITEST
+ [Test]
+ public void Bugzilla39458Test()
+ {
+ RunningApp.WaitForElement(q => q.Marked("This is page 2"));
+ }
+#endif
+ }
+}