Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Crear la solución
En Windows, inicie Visual Studio 2019 y, en la ventana Inicio, haga clic en crear
un nuevo proyecto para crear un nuevo proyecto:
En la ventana Crear un proyecto nuevo, seleccione Móvil en la lista
desplegable Tipo de proyecto, elija la plantilla Aplicación móvil
(Xamarin.Forms) y haga clic en el botón Siguiente:
Deberá hacer clic en la flecha situada junto a app. Xaml para ver el archivo de
código subyacente.
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XamlSamples"
x:Class="XamlSamples.MainPage">
<StackLayout>
<!-- Place new controls here -->
<Label Text="Welcome to Xamarin Forms!"
VerticalOptions="Center"
HorizontalOptions="Center" />
</StackLayout>
</ContentPage>
La local declaración del espacio de nombres permite tener acceso a otras clases
desde el proyecto de biblioteca de .net Standard.
using Xamarin.Forms;
namespace XamlSamples
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
}
}
Cuando Visual Studio compila el proyecto, analiza el archivo XAML para generar
un archivo de código de C#. Si busca en el
directorio XamlSamples\XamlSamples\obj\Debug , encontrará un archivo
denominado XamlSamples.mainpage.Xaml.g.CS. ' G ' significa que se ha
generado. Esta es la otra definición de clase parcial de MainPage que contiene la
definición del método InitializeComponent al que se llama desde el constructor
MainPage. Estas dos definiciones MainPage de clase parcial se pueden compilar a
Para los objetos visuales más interesantes, lo único que necesita es XAML.
Edite el archivo HelloXamlPage. Xaml para que las únicas etiquetas sean
las ContentPage de ContentPage.Content y:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XamlSamples.HelloXamlPage">
<ContentPage.Content>
</ContentPage.Content>
</ContentPage>
XAMLCopiar
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XamlSamples.HelloXamlPage"
Title="Hello XAML Page">
<ContentPage.Content>
</ContentPage.Content>
</ContentPage>
En este momento, la relación entre las clases, las propiedades y el XML debe
ser evidente: una clase Xamarin.Forms (como ContentPage o Label ) aparece en el
archivo XAML como un elemento XML. Las propiedades de esa
clase, Title incluidas en las propiedades ContentPage Label normalmente aparecen
como atributos XML.
numérico.
TextColor="#rrggbb"
TextColor="#aarrggbb">
En el canal alfa, tenga en cuenta que FF es totalmente opaco y 00 es
completamente transparente.
Otros dos formatos permiten especificar un solo dígito hexadecimal para cada
canal:
TextColor="#rgb" TextColor="#argb"
En estos casos, el dígito se repite para formar el valor. Por ejemplo, #CF3 es el
color RGB CC-FF-33.
Navegación de páginas
public App()
{
InitializeComponent();
MainPage = new NavigationPage(new MainPage());
}
public MainPage()
{
InitializeComponent();
Content = button;
}
Puede volver a MainPage usar el botón atrás< en iOS, con la flecha izquierda en
la parte superior de la página o en la parte inferior del teléfono en Android, o
mediante la flecha izquierda en la parte superior de la página en Windows 10.
Este es su aspecto:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XamlSamples.XamlPlusCodePage"
Title="XAML + Code Page">
<StackLayout>
<Slider VerticalOptions="CenterAndExpand" />
Sin embargo, es probable que tenga en cuenta que este programa tiene un
funcionamiento deficiente. Quizás Slider se supone que se debe hacer
que Label muestre el valor actual y que, Button probablemente, haga algo en el
programa.
C#Copiar
namespace XamlSamples
{
public partial class XamlPlusCodePage
{
public XamlPlusCodePage()
{
InitializeComponent();
}
}
}
}
De nuevo en el archivo XAML, Slider las etiquetas y Button deben incluir atributos
para los eventos ValueChanged y Clicked que hacen referencia a estos
controladores:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XamlSamples.XamlPlusCodePage"
Title="XAML + Code Page">
<StackLayout>
<Slider VerticalOptions="CenterAndExpand"
ValueChanged="OnSliderValueChanged" />
XAMLCopiar
<Label x:Name="valueLabel"
Text="A simple Label"
Font="Large"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand" />
El x prefijo del x:Name atributo indica que este atributo es intrínseco a XAML.
El nombre que asigna al x:Name atributo tiene las mismas reglas que los nombres
de las variables de C#. Por ejemplo, debe empezar por una letra o un carácter
de subrayado y no contener espacios incrustados.
Ahora, el controlador de eventos ValueChanged puede establecer Label para
mostrar el nuevo valor Slider. El nuevo valor está disponible en los argumentos
del evento:
O bien, el controlador podría obtener el objeto Slider que este evento genera
desde el argumento sender y obtener la propiedad Value de ese:
C#Copiar
async void OnButtonClicked(object sender, EventArgs args)
{
Button button = (Button) sender;
await DisplayAlert("Clicked!",
"The button labeled '" + button.Text + "' has been clicked",
"OK");
}
Resumen