我在Xamarin.Forms中制作了一个2页的测试应用程序。主页面是我想要放置登录页面的堆栈的开头。在PushModalAsync之后,登录页面不显示。
附上我有一个测试项目的zip文件。
public static async void StartLogin()
{
Button btnLogin = new Button();
btnLogin.Text = "Login";
btnLogin.BackgroundColor = Color.Green;
btnLogin.TextColor = Color.White;
ContentPage _loginPage = new ContentPage
{
Title = "Login",
Content = new StackLayout
{
Spacing = 20,
Padding = 50,
VerticalOptions = LayoutOptions.Center,
Children =
{
btnLogin,
}
}
};
_loginPage.BackgroundColor = Color.Black;
await Navigation.PushAsync(_loginPage);
}
答案 0 :(得分:4)
尝试:
Device.BeginInvokeOnMainThread(() => Navigation.PushAsync(_loginPage););
因为Navigation是UI操作,所以必须在UI线程上执行。如果你保留它,因为它没有在UI线程上执行。使用Device.BeginInvokeOnMainThread
应该修复