Xamarin.Forms:应用程序不在页面上显示元素
Posted
技术标签:
【中文标题】Xamarin.Forms:应用程序不在页面上显示元素【英文标题】:Xamarin.Forms: App does not show elements on the page 【发布时间】:2020-09-29 08:27:08 【问题描述】:我目前正在学习使用 Xamarin.Forms 和 C#(进入它的第一周),并且正在尝试创建一个基本的登录应用程序。 我从一个空白模板开始。现在,当我运行我的应用程序时,只会弹出基本屏幕,而不会弹出页面中的元素。怎么了?
App.xaml.cs
using Xamarin.Forms;
namespace XamarinApp
public partial class App : Application
public App()
InitializeComponent();
new LoginPage();
protected override void OnStart()
protected override void OnSleep()
protected override void OnResume()
LoginPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XamarinApp.LoginPage">
<ContentPage.Content>
<StackLayout>
<Label
Text="Welcome"
/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
LoginPage.xaml.cs
using Xamarin.Forms;
namespace XamarinApp
public partial class LoginPage : ContentPage
public LoginPage()
InitializeComponent();
【问题讨论】:
尝试将new LoginPage();
更改为this.MainPage = new LoginPage();
@Bijington,这是什么魔法?我的代码有什么问题?另外,我的代码中没有 MainPage.xaml。为什么我还需要使用this.MainPage
?
您需要定义起始页是什么。 MainPage
是 App
的属性我怀疑您的 App.xaml
文件中可能已经存在指向页面的内容。
@Bijington, this 是我的 App.xaml
new LoginPage();
只是在内存中创建一个页面的新实例。如果你不将它分配给任何东西,那么它只会留在内存中,直到 GC 清理它。任何 C# 对象都是如此。
【参考方案1】:
TL-DR
我相信要解决您的问题,您需要更改线路:
new LoginPage();
到:
MainPage = new LoginPage();
我的推理
您需要指定MainPage
是什么。当您第一次开始时,这部分可能会让人感到困惑,因为提供的示例页面也称为MainPage
,但一个是class/Page
实现,另一个关键部分是您的Application
类提供的属性App
类继承自。这样应用程序在运行时就知道它正在启动Page
。
通常,当您创建新的空白 Xamarin.Forms 应用时,您将在 App.xaml.cs 中看到以下代码
public App()
InitializeComponent();
MainPage = new MainPage();
我怀疑您在 LoginPage 中添加的更改以某种方式最终从该行中删除了关键部分:MainPage =
。
【讨论】:
我还是不明白MainPage = new MainPage()
做了什么。它看起来像 System.Int32 = new System.Int32()
或 classname = new classname()
。不应该是MainPage mainPage = new MainPage()
吗?
是的,就这个问题而言,令人沮丧的是,类和属性具有相同的名称。左边的MainPage
实际上是一个属性而不是一个类型。它由微软docs.microsoft.com/en-us/dotnet/api/…提供的Application
类为你提供以上是关于Xamarin.Forms:应用程序不在页面上显示元素的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Forms Webview html 视频不在 iOS 设备上播放
Xamarin.Forms - oxyplot 不在 CollectionView 内显示
Xamarin.Forms 警告:尝试使用 iOS 图像/手势识别器在其视图不在窗口层次结构中的 * 上呈现 *