TransWikia.com

¿Cómo hago para usar distintas páginas en un NavigationView en C#, con un UWP?

Stack Overflow en español Asked by Tupi on November 7, 2021

Estoy intentando hacer un NavigationView en un UWP, con C#. Intento hacer que pueda cambiar lo que aparece en el Frame cada vez que cambio de botón.
Me explico: Tengo 5 botones en el menú (Friend, Calculator, Copy, Paste, Settings). Me gustaría que al pulsar Friends, pudiera hacer ContentFrame.Navigate(typeof (HomePage));. Al pulsar el segundo, ContentFrame.Navigate(typeof (CalculatorPage));. Y así todos, hasta llegar al botón de configuración, donde sería ContentFrame.Navigate(typeof(SettingsPage));.

Este es el código XAML:

<Page
    x:Class="Windowed.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Windowed"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:muxc="using:Windows.UI.Xaml.Controls"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>
        <NavigationView x:Name="NavView" SelectionChanged="NavView_SelectionChanged">
            <NavigationView.MenuItems>
                <NavigationViewItemHeader Content="Names" />
                <NavigationViewItem Icon="AddFriend" Content="Friend" Tag="friend"/>
                <NavigationViewItem Icon="Calculator" Content="Calculator" Tag="calculator" />
                <NavigationViewItemSeparator Opacity="0"/>
                <NavigationViewItem Icon="Copy" Content="Copy" Tag="copy"/>
                <NavigationViewItem Icon="Paste" Content="Paste" Tag="paste" />
            </NavigationView.MenuItems>

            <NavigationView.AutoSuggestBox>
                <AutoSuggestBox x:Name ="ASB" QueryIcon="Find"/>
            </NavigationView.AutoSuggestBox>

            <Frame x:Name="ContentFrame" >
                <Frame.ContentTransitions>
                    <TransitionCollection>
                        <NavigationThemeTransition/>
                    </TransitionCollection>
                </Frame.ContentTransitions>
            </Frame>
        </NavigationView>
    </Grid>
</Page>

Y este es el C#:

namespace Windowed
{
    /// <summary>
    /// Página vacía que se puede usar de forma independiente o a la que se puede navegar dentro de un objeto Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private void NavView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
        {
            if (args.IsSettingsSelected)
            {
                //ContentFrame.Navigate(typeof(SettingsPage));
            }
            else
            {
                NavigationViewItem item = args.SelectedItem as NavigationViewItem;

                switch (item.Tag.ToString())
                {
                    case "friend":
                        ContentFrame.Navigate(typeof (HomePage));
                        break;
                }
            }
        }
    }
}

Mi problema es, ¿cómo creo HomePage, CalculatorPage o SettingsPage? ¿Qué son realmente? ¿Cómo puedo editar y añadir cosas ahí?

Gracias, ojalá puedan ayudarme.

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP