Inicio rápido de la creación de una aplicación de Xamarin.Forms

Ejemplo de descarga Descarga del ejemplo

En este inicio rápido aprenderá a:

  • Crear una aplicación de Xamarin.Forms Shell.
  • Definir la interfaz de usuario para una página mediante el lenguaje XAML e interactuar con elementos de XALM del código.
  • Describir la jerarquía visual de una aplicación de Shell mediante la creación de subclase de la clase Shell.

El inicio rápido lo guía sobre cómo crear una aplicación de Xamarin.Forms Shell multiplataforma que permite escribir una nota y conservarla en el almacenamiento del dispositivo. A continuación se muestra la aplicación final:

Notas de laaplicación sobre la página

Requisitos previos

  • Visual Studio 2019 (última versión), con la carga de trabajo Desarrollo para dispositivos móviles con .NET instalada.
  • Conocimientos de C#.
  • (opcional) Un equipo Mac emparejado para compilar la aplicación en iOS.

Para más información sobre estos requisitos previos, vea Instalación de Xamarin. Para obtener información sobre cómo conectar Visual Studio 2019 a un host de compilación de Mac, consulte Emparejar con Mac para el desarrollo de Xamarin.iOS.

Introducción a Visual Studio 2019

  1. Inicie Visual Studio 2019 y, en la ventana de inicio, haga clic en Crear un proyecto nuevo para crear un proyecto:

    Nueva solución

  2. En la ventana Crear un proyecto nuevo, seleccione Móvil en la lista desplegable Tipo de proyecto, elija la plantilla Aplicación móvil () y haga clic en el botón Siguiente:

    Elegir una plantilla

  3. En el cuadro de diálogo Configure su nuevo proyecto, establezca Nombre del proyecto en Notes, elija una ubicación adecuada para el proyecto y haga clic en el botón Crear:

    Configuración de la aplicación de shell

    Importante

    Los fragmentos de XAML y C# en este inicio rápido requieren que tanto la solución como el proyecto se denominen Notes. El uso de otro nombre dará como resultado errores de compilación al copiar el código de este inicio rápido en la solución.

  4. En el cuadro de diálogo Nueva aplicación móvil, seleccione la plantilla Tabbed (Con pestañas) y haga clic en el botón Crear:

    Creación de la aplicación de shell

    Una vez creado el proyecto, cierre el archivo GettingStarted.txt.

    Para obtener más información sobre la biblioteca .NET Standard que se crea, vea Anatomy of a Xamarin.Forms Shell application en Xamarin.Forms Shell Quickstart Deep Dive .

  5. En el Explorador de soluciones, en el proyecto Notes, elimine las carpetas siguientes y su contenido:

    • Modelos
    • Servicios
    • ViewModels
    • Vistas
  6. En el Explorador de soluciones, en el proyecto Notes, elimine GettingStarted.txt.

  7. En el Explorador de soluciones, en el proyecto Notes, agregue una carpeta nueva denominada Vistas.

  8. En Explorador de soluciones, en el proyecto Notes, seleccione la carpeta Vistas, haga clic con el botón derecho y seleccione Agregar nuevo elemento.... En el cuadro de diálogo Agregar nuevo elemento, seleccione Página de contenido de elementos de Visual C#,asigne al nuevo archivo el nombre NotesPagey haga clic en el botón Agregar:

    Agregar NotesPage

    Esto agregará una página nueva denominada NotesPage en la carpeta Vistas. Esta página será la página principal de la aplicación.

  9. En el Explorador de soluciones, en el proyecto Notes, haga doble clic en NotesPage.xaml para abrirlo:

    Abrir NotesPage.xaml

  10. En NotesPage.xaml, quite todo el código de plantilla y sustitúyalo por el siguiente:

    <?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="Notes.Views.NotesPage"
                 Title="Notes">
        <!-- Layout children vertically -->
        <StackLayout Margin="20">
            <Editor x:Name="editor"
                    Placeholder="Enter your note"
                    HeightRequest="100" />
            <!-- Layout children in two columns -->
            <Grid ColumnDefinitions="*,*">
                <Button Text="Save"
                        Clicked="OnSaveButtonClicked" />
                <Button Grid.Column="1"
                        Text="Delete"
                        Clicked="OnDeleteButtonClicked"/>
            </Grid>
        </StackLayout>
    </ContentPage>
    

    Este código define mediante declaración la interfaz de usuario para la página, que consta de una instancia de Editor para la entrada de texto y dos objetos Button que dirigen la aplicación para guardar o eliminar un archivo. Los dos objetos Button se disponen horizontalmente en Grid, mientras que Editor y Grid se disponen en vertical en StackLayout. Para obtener más información sobre cómo crear la interfaz de usuario, vea Interfaz de usuario en .

    Presione CTRL+S para guardar los cambios en NotesPage.xaml.

  11. En el Explorador de soluciones, en el proyecto Notes, haga doble clic en NotesPage.xaml.cs para abrirlo:

    Abra NotesPage.xaml.cs

  12. En NotesPage.xaml.cs, quite todo el código de plantilla y sustitúyalo por el siguiente:

    using System;
    using System.IO;
    using Xamarin.Forms;
    
    namespace Notes.Views
    {
        public partial class NotesPage : ContentPage
        {
            string _fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "notes.txt");
    
            public NotesPage()
            {
                InitializeComponent();
    
                // Read the file.
                if (File.Exists(_fileName))
                {
                    editor.Text = File.ReadAllText(_fileName);
                }
            }
    
            void OnSaveButtonClicked(object sender, EventArgs e)
            {
                // Save the file.
                File.WriteAllText(_fileName, editor.Text);
            }
    
            void OnDeleteButtonClicked(object sender, EventArgs e)
            {
                // Delete the file.
                if (File.Exists(_fileName))
                {
                    File.Delete(_fileName);
                }
                editor.Text = string.Empty;
            }
        }
    }
    

    Este código define un campo _fileName, que hace referencia a un archivo denominado notes.txt que almacenará los datos de la nota en la carpeta de datos de la aplicación local para la aplicación. Cuando se ejecuta el constructor de páginas, el archivo se lee, si existe, y se muestra en el Editor. Cuando se presiona Guardar, se ejecuta el controlador de eventos, que guarda el contenido de en el OnSaveButtonClickedEditor archivo. Cuando se presiona Delete, se ejecuta el controlador de eventos, que elimina el archivo, siempre que exista, y quita cualquier texto OnDeleteButtonClicked de Editor . Para obtener más información sobre la interacción del usuario, vea Responder a la interacción del usuario en .

    Presione CTRL+S para guardar los cambios en NotesPage.xaml.cs.

  13. En Explorador de soluciones, en el proyecto Notes, seleccione la carpeta Vistas, haga clic con el botón derecho y seleccione Agregar nuevo elemento.... En el cuadro de diálogo Agregar nuevo elemento, seleccione Página de contenido de elementos de Visual C#,asigne al nuevo archivo el nombre AboutPagey haga clic en el botón Agregar:

    Agregar AboutPage

    Esto agregará una página nueva denominada AboutPage en la carpeta Vistas.

  14. En el Explorador de soluciones, en el proyecto Notes, haga doble clic en AboutPage.xaml para abrirlo:

    Abrir AboutPage.xaml

  15. En AboutPage.xaml, quite todo el código de plantilla y sustitúyalo por el siguiente:

    <?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="Notes.Views.AboutPage"
                 Title="About">
        <!-- Layout children in two rows -->
        <Grid RowDefinitions="Auto,*">
            <Image Source="xamarin_logo.png"
                   BackgroundColor="{OnPlatform iOS=LightSlateGray, Android=#2196F3}"
                   VerticalOptions="Center"
                   HeightRequest="64" />
            <!-- Layout children vertically -->
            <StackLayout Grid.Row="1"
                         Margin="20"
                         Spacing="20">
                <Label FontSize="22">
                    <Label.FormattedText>
                        <FormattedString>
                            <FormattedString.Spans>
                                <Span Text="Notes"
                                      FontAttributes="Bold"
                                      FontSize="22" />
                                <Span Text=" v1.0" />
                            </FormattedString.Spans>
                        </FormattedString>
                    </Label.FormattedText>
                </Label>
                <Label Text="This app is written in XAML and C# with the Xamarin Platform." />
                <Button Text="Learn more"
                        Clicked="OnButtonClicked" />
            </StackLayout>
        </Grid>
    </ContentPage>
    

    Este código define mediante declaración la interfaz de usuario de la página, que consta de un Image, dos objetos Label que muestran texto y un Button. Los dos objetos Label y Button se disponen verticalmente en StackLayout, mientras que Image y StackLayout se disponen en horizontal en Grid. Para obtener más información sobre cómo crear la interfaz de usuario, vea Interfaz de usuario en .

    Presione CTRL+S para guardar los cambios en AboutPage.xaml.

  16. En el Explorador de soluciones, en el proyecto Notes, haga doble clic en AboutPage.xaml.cs para abrirlo:

    Abrir AboutPage.xaml.cs

  17. En AboutPage.xaml.cs, quite todo el código de plantilla y sustitúyalo por el siguiente:

    using System;
    using Xamarin.Essentials;
    using Xamarin.Forms;
    
    namespace Notes.Views
    {
        public partial class AboutPage : ContentPage
        {
            public AboutPage()
            {
                InitializeComponent();
            }
    
            async void OnButtonClicked(object sender, EventArgs e)
            {
                // Launch the specified URL in the system browser.
                await Launcher.OpenAsync("https://aka.ms/xamarin-quickstart");
            }
        }
    }
    

    Este código define el controlador de eventos, que se ejecuta cuando se presiona OnButtonClickedOnButtonClickedButton información. Al presionar el botón, se inicia un explorador web y se muestra la página representada por el argumento de URI para el método OpenAsync. Para obtener más información sobre la interacción del usuario, vea Responder a la interacción del usuario en .

    Presione CTRL+S para guardar los cambios en AboutPage.xaml.cs.

  18. En el Explorador de soluciones, en el proyecto Notes, haga doble clic en AppShell.xaml para abrirlo:

    Abrir AppShell.xaml

  19. En AppShell.xaml, quite todo el código de plantilla y sustitúyalo por el siguiente código:

    <?xml version="1.0" encoding="UTF-8"?>
    <Shell xmlns="http://xamarin.com/schemas/2014/forms"
           xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
           xmlns:views="clr-namespace:Notes.Views"
           x:Class="Notes.AppShell">
        <!-- Display a bottom tab bar containing two tabs -->   
        <TabBar>
            <ShellContent Title="Notes"
                          Icon="icon_feed.png"
                          ContentTemplate="{DataTemplate views:NotesPage}" />
            <ShellContent Title="About"
                          Icon="icon_about.png"
                          ContentTemplate="{DataTemplate views:AboutPage}" />
        </TabBar>
    </Shell>
    

    Este código define mediante declaración la jerarquía visual de la aplicación, que consta de un elemento TabBar que contiene dos objetos ShellContent. Estos objetos no representan ningún elemento de interfaz de usuario, sino más bien la organización de la jerarquía visual de la aplicación. Shell tomará estos elementos y generará la interfaz de usuario del contenido. Para obtener más información sobre cómo crear la interfaz de usuario, vea Interfaz de usuario en .

    Presione CTRL+S para guardar los cambios en AppShell.xaml.

  20. En el Explorador de soluciones, en el proyecto Notes, expanda AppShell.xaml y haga doble clic en AppShell.xaml.cs para abrirlo:

    Abra AppShell.xaml.cs

  21. En AppShell.xaml.cs, quite todo el código de plantilla y sustitúyalo por el siguiente código:

    using Xamarin.Forms;
    
    namespace Notes
    {
        public partial class AppShell : Shell
        {
            public AppShell()
            {
                InitializeComponent();
            }
        }
    }
    

    Presione CTRL+S para guardar los cambios en AppShell.xaml.cs.

  22. En el Explorador de soluciones, en el proyecto Notes, haga doble clic en App.xaml para abrirlo:

    Abrir App.xaml

  23. En App.xaml, quite todo el código de plantilla y sustitúyalo por el siguiente código:

    <?xml version="1.0" encoding="utf-8" ?>
    <Application xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 x:Class="Notes.App">
    
    </Application>
    

    Este código define mediante declaración una clase App, que es responsable de crear instancias de la aplicación.

    Presione CTRL+S para guardar los cambios en App.xaml.

  24. En el Explorador de soluciones, en el proyecto Notes, expanda App.xaml y haga doble clic en App.xaml.cs para abrirlo:

    Abrir App.xaml.cs

  25. En App.xaml.cs, quite todo el código de plantilla y sustitúyalo por el siguiente código:

    using Xamarin.Forms;
    
    namespace Notes
    {
        public partial class App : Application
        {
    
            public App()
            {
                InitializeComponent();
                MainPage = new AppShell();
            }
    
            protected override void OnStart()
            {
            }
    
            protected override void OnSleep()
            {
            }
    
            protected override void OnResume()
            {
            }
        }
    }
    

    Este código define el código subyacente de la clase App, que es responsable de crear instancias de la aplicación. Inicializa la propiedad Xamarin_Forms _Application_MainPage" data-linktype="absolute-path">al objeto MainPage con Shell subclases.

    Presione CTRL+S para guardar los cambios en App.xaml.cs.

Compilar el tutorial rápido

  1. En Visual Studio, seleccione el elemento de menú Compilar solución de compilación (o presione F6). La solución se compilará y aparecerá un mensaje de operación correcta en la barra de estado de Visual Studio:

    Compilación correcta

    Si hay errores, repita los pasos anteriores y corrija los errores hasta que la solución se compile correctamente.

  2. En la barra de herramientas de Visual Studio, pulse el botón Iniciar (el botón triangular que parece un botón de reproducción) para iniciar la aplicación en la instancia elegida de Android Emulator:

    Visual Studio barra de herramientas de Android

    Notas de android Emulator

    Escriba una nota y pulse el botón Guardar. A continuación, cierre la aplicación y vuelva a iniciarla para asegurarse de que se vuelve a cargar la nota que escribió.

    Presione el icono de la pestaña Acerca de para ir a :

    Notas sobre la página en android Emulator

    Presione el botón Más información para abrir la página web de los inicios rápidos.

    Para obtener más información sobre cómo se inicia la aplicación en cada plataforma, vea Iniciar la aplicación en cada plataforma de .

    Nota:

    Los pasos siguientes solo se deben llevar a cabo si tiene un equipo Mac emparejado que cumpla los requisitos del sistema para el desarrollo.

  3. En la barra de herramientas de Visual Studio, haga clic con el botón derecho en el proyecto Notes.iOS y seleccione Establecer como proyecto de inicio.

    Establezca Notes.iOS como inicio Project

  4. En la barra de herramientas de Visual Studio, pulse el botón Iniciar (el botón triangular que parece un botón de reproducción) para iniciar la aplicación en la instancia elegida de iOS Simulator:

    Visual Studio barra de herramientas de iOS

    Notas del simulador de iOS

    Escriba una nota y pulse el botón Guardar. A continuación, cierre la aplicación y vuelva a iniciarla para asegurarse de que se vuelve a cargar la nota que escribió.

    Presione el icono de la pestaña Acerca de para ir a :

    Notas sobre la página en el simulador de iOS

    Presione el botón Más información para abrir la página web de los inicios rápidos.

    Para obtener más información sobre cómo se inicia la aplicación en cada plataforma, vea Iniciar la aplicación en cada plataforma de .

Requisitos previos

  • Visual Studio para Mac (última versión) con compatibilidad con la plataforma iOS y Android.
  • Xcode (última versión).
  • Conocimientos de C#.

Para más información sobre estos requisitos previos, vea Instalación de Xamarin.

Introducción a Visual Studio para Mac

  1. Para crear un proyecto, inicie Visual Studio para Mac y, en la ventana de inicio, haga clic en Nuevo:

    Nueva solución

  2. En el cuadro de diálogo Elegir una plantilla para el nuevo proyecto, haga clic en Aplicación multiplataforma,seleccione la plantilla Aplicación de formularios shell y haga clic en el botón Siguiente:

    Elegir una plantilla

  3. En el cuadro de diálogo Configure your Shell Forms app (Configurar la aplicación de Forms de shell), asigne el nombre Notes a la aplicación nueva y haga clic en el botón Siguiente:

    Configuración de la aplicación de shell

  4. En el cuadro de diálogo Configure your new Shell Forms app (Configurar su nueva aplicación de Forms de shell), deje los nombres de solución y de proyecto establecidos en Notes, elija una ubicación adecuada para el proyecto y haga clic en el botón Crear para crearlo:

    Configuración del shell Project

    Importante

    Los fragmentos de XAML y C# en este inicio rápido requieren que tanto la solución como el proyecto se denominen Notes. El uso de otro nombre dará como resultado errores de compilación al copiar el código de este inicio rápido en la solución.

    Para obtener más información sobre la biblioteca .NET Standard que se crea, vea Anatomy of a Xamarin.Forms Shell application en Xamarin.Forms Shell Quickstart Deep Dive .

  5. En el Panel de solución, en el proyecto Notes, elimine las carpetas siguientes y su contenido:

    • Modelos
    • Servicios
    • ViewModels
    • Vistas
  6. En el Panel de solución, en el proyecto Notes, elimine GettingStarted.txt.

  7. En el Panel de solución, en el proyecto Notes, agregue una carpeta nueva denominada Vistas.

  8. En el Panel de solución, en el proyecto Notes, seleccione la carpeta Vistas, haga clic con el botón derecho y seleccione Agregar nuevo archivo.... En el cuadro de diálogo Nuevo archivo, seleccione Formularios ContentPage XAML,asigne al nuevo archivo el nombre NotesPagey haga clic en el botón Nuevo:

    Agregar NotesPage

    Esto agregará una página nueva denominada NotesPage en la carpeta Vistas. Esta página será la página principal de la aplicación.

  9. En el Panel de solución, en el proyecto Notes, haga doble clic en NotesPage.xaml para abrirlo:

    Abrir NotesPage.xaml

  10. En NotesPage.xaml, quite todo el código de plantilla y sustitúyalo por el siguiente:

    <?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="Notes.Views.NotesPage"
                 Title="Notes">
        <!-- Layout children vertically -->
        <StackLayout Margin="20">
            <Editor x:Name="editor"
                    Placeholder="Enter your note"
                    HeightRequest="100" />
            <!-- Layout children in two columns -->
            <Grid ColumnDefinitions="*,*">
                <Button Text="Save"
                        Clicked="OnSaveButtonClicked" />
                <Button Grid.Column="1"
                        Text="Delete"
                        Clicked="OnDeleteButtonClicked"/>
            </Grid>
        </StackLayout>
    </ContentPage>
    

    Este código define mediante declaración la interfaz de usuario para la página, que consta de una instancia de Editor para la entrada de texto y dos objetos Button que dirigen la aplicación para guardar o eliminar un archivo. Los dos objetos Button se disponen horizontalmente en Grid, mientras que Editor y Grid se disponen en vertical en StackLayout. Para obtener más información sobre cómo crear la interfaz de usuario, vea Interfaz de usuario en .

    Guarde los cambios en NotesPage.xaml eligiendo Guardar archivo (o presionando ⌘ + S).

  11. En el Panel de solución, en el proyecto Notes, haga doble clic en NotesPage.xaml.cs para abrirlo:

    Abra NotesPage.xaml.cs

  12. En NotesPage.xaml.cs, quite todo el código de plantilla y sustitúyalo por el siguiente:

    using System;
    using System.IO;
    using Xamarin.Forms;
    
    namespace Notes.Views
    {
        public partial class NotesPage : ContentPage
        {
            string _fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "notes.txt");
    
            public NotesPage()
            {
                InitializeComponent();
    
                // Read the file.
                if (File.Exists(_fileName))
                {
                    editor.Text = File.ReadAllText(_fileName);
                }
            }
    
            void OnSaveButtonClicked(object sender, EventArgs e)
            {
                // Save the file.
                File.WriteAllText(_fileName, editor.Text);
            }
    
            void OnDeleteButtonClicked(object sender, EventArgs e)
            {
                // Delete the file.
                if (File.Exists(_fileName))
                {
                    File.Delete(_fileName);
                }
                editor.Text = string.Empty;
            }
        }
    }
    

    Este código define un campo _fileName, que hace referencia a un archivo denominado notes.txt que almacenará los datos de la nota en la carpeta de datos de la aplicación local para la aplicación. Cuando se ejecuta el constructor de páginas, el archivo se lee, si existe, y se muestra en el Editor. Cuando se presiona Guardar, se ejecuta el controlador de eventos, que guarda el contenido de en el OnSaveButtonClickedEditor archivo. Cuando se presiona Delete, se ejecuta el controlador de eventos, que elimina el archivo, siempre que exista, y quita cualquier texto OnDeleteButtonClicked de Editor . Para obtener más información sobre la interacción del usuario, vea Responder a la interacción del usuario en .

    Guarde los cambios en NotesPage.xaml.cs eligiendo Guardar archivo (o presionando ⌘ + S).

  13. En el Panel de solución, en el proyecto Notes, seleccione la carpeta Vistas, haga clic con el botón derecho y seleccione Agregar nuevo archivo.... En el cuadro de diálogo Nuevo archivo, seleccione Formularios Forms ContentPage XAML, asigne al nuevo archivo el nombre AboutPagey haga clic en el botón Nuevo:

    Agregar AboutPage

  14. En el Panel de solución, en el proyecto Notes, haga doble clic en AboutPage.xaml para abrirlo:

    Abrir AboutPage.xaml

    Esto agregará una página nueva denominada AboutPage en la carpeta Vistas.

  15. En AboutPage.xaml, quite todo el código de plantilla y sustitúyalo por el siguiente:

    <?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="Notes.Views.AboutPage"
                 Title="About">
        <!-- Layout children in two rows -->
        <Grid RowDefinitions="Auto,*">
            <Image Source="xamarin_logo.png"
                   BackgroundColor="{OnPlatform iOS=LightSlateGray, Android=#2196F3}"
                   VerticalOptions="Center"
                   HeightRequest="64" />
            <!-- Layout children vertically -->
            <StackLayout Grid.Row="1"
                         Margin="20"
                         Spacing="20">
                <Label FontSize="22">
                    <Label.FormattedText>
                        <FormattedString>
                            <FormattedString.Spans>
                                <Span Text="Notes"
                                      FontAttributes="Bold"
                                      FontSize="22" />
                                <Span Text=" v1.0" />
                            </FormattedString.Spans>
                        </FormattedString>
                    </Label.FormattedText>
                </Label>
                <Label Text="This app is written in XAML and C# with the Xamarin Platform." />
                <Button Text="Learn more"
                        Clicked="OnButtonClicked" />
            </StackLayout>
        </Grid>
    </ContentPage>
    

    Este código define mediante declaración la interfaz de usuario de la página, que consta de un Image, dos objetos Label que muestran texto y un Button. Los dos objetos Label y Button se disponen verticalmente en StackLayout, mientras que Image y StackLayout se disponen en horizontal en Grid. Para obtener más información sobre cómo crear la interfaz de usuario, vea Interfaz de usuario en .

    Guarde los cambios en AboutPage.xaml eligiendo Guardar archivo (o presionando ⌘ + S).

  16. En el Panel de solución, en el proyecto Notes, haga doble clic en AboutPage.xaml.cs para abrirlo:

    Abrir AboutPage.xaml.cs

  17. En AboutPage.xaml.cs, quite todo el código de plantilla y sustitúyalo por el siguiente:

    using System;
    using Xamarin.Essentials;
    using Xamarin.Forms;
    
    namespace Notes.Views
    {
        public partial class AboutPage : ContentPage
        {
            public AboutPage()
            {
                InitializeComponent();
            }
    
            async void OnButtonClicked(object sender, EventArgs e)
            {
                // Launch the specified URL in the system browser.
                await Launcher.OpenAsync("https://aka.ms/xamarin-quickstart");
            }
        }
    }
    

    Este código define el controlador de eventos, que se ejecuta cuando se presiona OnButtonClickedOnButtonClickedButton información. Al presionar el botón, se inicia un explorador web y se muestra la página representada por el argumento de URI para el método OpenAsync. Para obtener más información sobre la interacción del usuario, vea Responder a la interacción del usuario en .

    Guarde los cambios en AboutPage.xaml.cs eligiendo Guardar archivo (o presionando ⌘ + S).

  18. En el Panel de solución, en el proyecto Notes, haga doble clic en AppShell.xaml para abrirlo:

    Abrir AppShell.xaml

  19. En AppShell.xaml, quite todo el código de plantilla y sustitúyalo por el siguiente código:

    <?xml version="1.0" encoding="UTF-8"?>
    <Shell xmlns="http://xamarin.com/schemas/2014/forms"
           xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
           xmlns:views="clr-namespace:Notes.Views"
           x:Class="Notes.AppShell">
        <!-- Display a bottom tab bar containing two tabs -->
        <TabBar>
            <ShellContent Title="Notes"
                          Icon="icon_feed.png"
                          ContentTemplate="{DataTemplate views:NotesPage}" />
            <ShellContent Title="About"
                          Icon="icon_about.png"
                          ContentTemplate="{DataTemplate views:AboutPage}" />
        </TabBar>
    </Shell>
    

    Este código define mediante declaración la jerarquía visual de la aplicación, que consta de un elemento TabBar que contiene dos objetos ShellContent. Estos objetos no representan ningún elemento de interfaz de usuario, sino más bien la organización de la jerarquía visual de la aplicación. Shell tomará estos elementos y generará la interfaz de usuario del contenido. Para obtener más información sobre cómo crear la interfaz de usuario, vea Interfaz de usuario en .

    Guarde los cambios en AppShell.xaml eligiendo Guardar archivo (o presionando ⌘ + S).

  20. En el Panel de solución, en el proyecto Notes, expanda AppShell.xaml y haga doble clic en AppShell.xaml.cs para abrirlo:

    Abra AppShell.xaml.cs

  21. En AppShell.xaml.cs, quite todo el código de plantilla y sustitúyalo por el siguiente código:

    using Xamarin.Forms;
    
    namespace Notes
    {
        public partial class AppShell : Shell
        {
            public AppShell()
            {
                InitializeComponent();
            }
        }
    }
    

    Guarde los cambios en AppShell.xaml.cs eligiendo Guardar archivo (o presionando ⌘ + S).

  22. En el Panel de solución, en el proyecto Notes, haga doble clic en App.xaml para abrirlo:

    Abrir App.xaml

  23. En App.xaml, quite todo el código de plantilla y sustitúyalo por el siguiente código:

    <?xml version="1.0" encoding="utf-8" ?>
    <Application xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 x:Class="Notes.App">
    
    </Application>
    

    Este código define mediante declaración una clase App, que es responsable de crear instancias de la aplicación.

    Guarde los cambios en App.xaml eligiendo Guardar archivo (o presionando ⌘ + S).

  24. En el Panel de solución, en el proyecto Notes, expanda App.xaml y haga doble clic en App.xaml.cs para abrirlo:

    Abrir App.xaml.cs

  25. En App.xaml.cs, quite todo el código de plantilla y sustitúyalo por el siguiente código:

    using Xamarin.Forms;
    
    namespace Notes
    {
        public partial class App : Application
        {
    
            public App()
            {
                InitializeComponent();
                MainPage = new AppShell();
            }
    
            protected override void OnStart()
            {
            }
    
            protected override void OnSleep()
            {
            }
    
            protected override void OnResume()
            {
            }
        }
    }
    

    Este código define el código subyacente de la clase App, que es responsable de crear instancias de la aplicación. Inicializa la propiedad Xamarin_Forms _Application_MainPage" data-linktype="absolute-path">al MainPage objeto con Shell subclases.

    Guarde los cambios en App.xaml.cs eligiendo Guardar archivo (o presionando ⌘ + S).

Compilación del inicio rápido

  1. En Visual Studio para Mac, seleccione el elemento de menú Compilar compilar todo (o presione ⌘ + B). El proyecto se compilará y aparecerá un mensaje de operación correcta en la barra de herramientas de Visual Studio para Mac:

    Compilación correcta

    Si hay errores, repita los pasos anteriores y corrija los errores hasta que la solución se compile correctamente.

  2. En el Panel de solución, seleccione el proyecto Notes.iOS, haga clic con el botón derecho y seleccione Establecer como proyecto de inicio:

    Establecer iOS como inicio Project

  3. En la barra de herramientas de Visual Studio para Mac, pulse el botón Iniciar (el botón triangular similar a un botón de reproducción) para iniciar la aplicación en la instancia elegida de iOS Simulator:

    Visual Studio para Mac barra de herramientas

    Notas del simulador de iOS

    Escriba una nota y pulse el botón Guardar. A continuación, cierre la aplicación y vuelva a iniciarla para asegurarse de que se vuelve a cargar la nota que escribió.

    Presione el icono de la pestaña Acerca de para ir a :

    Notas sobre la página en el simulador de iOS

    Presione el botón Más información para abrir la página web de los inicios rápidos.

    Para obtener más información sobre cómo se inicia la aplicación en cada plataforma, vea Iniciar la aplicación en cada plataforma de .

  4. En el Panel de solución, seleccione el proyecto Notes.Droid, haga clic con el botón derecho y seleccione Establecer como proyecto de inicio:

    Establecer Android como inicio Project

  5. En la barra de herramientas de Visual Studio para Mac, pulse el botón Iniciar (el botón triangular similar a un botón de reproducción) para iniciar la aplicación en la instancia elegida de Android Emulator:

    Notas de android Emulator

    Escriba una nota y pulse el botón Guardar. A continuación, cierre la aplicación y vuelva a iniciarla para asegurarse de que se vuelve a cargar la nota que escribió.

    Presione el icono de la pestaña Acerca de para ir a :

    Notas sobre la página en android Emulator

    Presione el botón Más información para abrir la página web de los inicios rápidos.

    Para obtener más información sobre cómo se inicia la aplicación en cada plataforma, vea Iniciar la aplicación en cada plataforma de .

Pasos siguientes

En este inicio rápido ha aprendido a:

  • Crear una aplicación de Xamarin.Forms Shell.
  • Definir la interfaz de usuario para una página mediante el lenguaje XAML e interactuar con elementos de XALM del código.
  • Describir la jerarquía visual de una aplicación de Shell mediante la creación de subclase de la clase Shell.

Continúe en el inicio rápido siguiente para agregar más páginas a esta aplicación de Xamarin.Forms Shell.