查看代碼,LoginPageCS.cs看起來與LoginPage.xaml基本相同 - 所以這將是一種在C#中創建頁面控件的方式,而不是XAML。有關差異的討論,請參閱this question。
注意的相似
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="LoginNavigation.LoginPage" Title="Login">
<ContentPage.ToolbarItems>
<ToolbarItem Text="Sign Up" Clicked="OnSignUpButtonClicked" />
</ContentPage.ToolbarItems>
<ContentPage.Content>
<StackLayout VerticalOptions="StartAndExpand">
<Label Text="Username" />
<Entry x:Name="usernameEntry" Placeholder="username" />
<Label Text="Password" />
<Entry x:Name="passwordEntry" IsPassword="true" />
<Button Text="Login" Clicked="OnLoginButtonClicked" />
<Label x:Name="messageLabel" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
LoginPageCS.cs:
public LoginPageCS()
{
var toolbarItem = new ToolbarItem {
Text = "Sign Up"
};
toolbarItem.Clicked += OnSignUpButtonClicked;
ToolbarItems.Add (toolbarItem);
messageLabel = new Label();
usernameEntry = new Entry {
Placeholder = "username"
};
passwordEntry = new Entry {
IsPassword = true
};
var loginButton = new Button {
Text = "Login"
};
loginButton.Clicked += OnLoginButtonClicked;
Title = "Login";
Content = new StackLayout {
VerticalOptions = LayoutOptions.StartAndExpand,
Children = {
new Label { Text = "Username" },
usernameEntry,
new Label { Text = "Password" },
passwordEntry,
loginButton,
messageLabel
}
};
}
保證金只是一種直觀的方式告訴頁面通過C#代碼中創建和不是Xaml。 – SushiHangover
XAML對UI設計師很友善,並且是*代碼生成器*的輸入。您通常無法看到它生成的代碼,並且代碼不太漂亮。所以作爲替代方案,他們還提供了fooCS.cs文件,它與foo.xaml和foo.xaml.cs文件完全相同。但在另一個名爲fooCS的類中。該類實際上並未在項目中使用。除了示範使用之外,它可能會激發程序員編寫代碼而不是xaml。 –