93 строки
2.1 KiB
C#
93 строки
2.1 KiB
C#
using Xamarin.Forms.CustomAttributes;
|
|
using Xamarin.Forms.Internals;
|
|
using System;
|
|
using System.Runtime.CompilerServices;
|
|
|
|
#if UITEST
|
|
using Xamarin.UITest;
|
|
using NUnit.Framework;
|
|
#endif
|
|
|
|
namespace Xamarin.Forms.Controls.Issues
|
|
{
|
|
[Preserve(AllMembers = true)]
|
|
[Issue(IssueTracker.Bugzilla, 43663, "ModalPushed and ModalPopped not working on WinRT", PlatformAffected.WinRT)]
|
|
public class Bugzilla43663 : TestNavigationPage
|
|
{
|
|
protected override void Init()
|
|
{
|
|
Application.Current.ModalPushed += ModalPushed;
|
|
Application.Current.ModalPopped += ModalPopped;
|
|
|
|
var initialPage = new ContentPage();
|
|
var insertedPage = new ContentPage
|
|
{
|
|
Content = new StackLayout
|
|
{
|
|
Children =
|
|
{
|
|
new Label { Text = "This page's appearing unsubscribes from the ModalPushed/ModalPopped events" },
|
|
new Button
|
|
{
|
|
Text = "Go back",
|
|
Command = new Command(async () => await Navigation.PopModalAsync())
|
|
}
|
|
}
|
|
}
|
|
};
|
|
insertedPage.Appearing += (s, e) =>
|
|
{
|
|
Application.Current.ModalPushed -= ModalPushed;
|
|
Application.Current.ModalPopped -= ModalPopped;
|
|
};
|
|
|
|
var modalPage = new ContentPage();
|
|
modalPage.Content = new StackLayout
|
|
{
|
|
Children =
|
|
{
|
|
new Label { Text = "Modal" },
|
|
new Button
|
|
{
|
|
Text = "Click to dismiss modal",
|
|
Command = new Command(async() =>
|
|
{
|
|
await Navigation.PopModalAsync();
|
|
})
|
|
}
|
|
},
|
|
};
|
|
|
|
initialPage.Content = new StackLayout
|
|
{
|
|
VerticalOptions = LayoutOptions.Center,
|
|
Children =
|
|
{
|
|
new Button
|
|
{
|
|
Text = "Click to push Modal",
|
|
Command = new Command(async () => await Navigation.PushModalAsync(modalPage))
|
|
},
|
|
new Button
|
|
{
|
|
Text = "Go back",
|
|
Command = new Command(async () => await Navigation.PopAsync())
|
|
}
|
|
}
|
|
};
|
|
|
|
PushAsync(initialPage);
|
|
Navigation.InsertPageBefore(insertedPage, initialPage);
|
|
}
|
|
|
|
void ModalPushed(object sender, ModalPushedEventArgs e)
|
|
{
|
|
DisplayAlert("Pushed", "Message", "Cancel");
|
|
}
|
|
|
|
void ModalPopped(object sender, ModalPoppedEventArgs e)
|
|
{
|
|
DisplayAlert("Popped", "Message", "Cancel");
|
|
}
|
|
}
|
|
} |