Skip to main content
 首页 » 编程设计

c#之Xamarin 表单页面未显示(iOS)

2024年02月06日27davidwang456

我在 Xamarin.Forms 中制作了一个包含 2 页的测试应用程序。主页是我要放置登录页面的堆栈的开始。 PushModalAsync 后登录页面不显示。

附上我有一个测试项目的 zip 文件。

TestProject

    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); 
 
    } 

请您参考如下方法:

尝试:

Device.BeginInvokeOnMainThread(() => Navigation.PushAsync(_loginPage);); 

因为导航是一个 UI 操作,所以它必须在 UI 线程上执行。如果您将其保留为原样,则不会发生任何事情,因为它尚未在 UI 线程上执行。使用 Device.BeginInvokeOnMainThread 应该可以解决这个问题