Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to go to another screen from one screen in Xamarin cross-platform?

I am new in Xamarin and I want to go to another screen from one screen. I have a button in first screen and I want to open another screen after clicking on that button. How can I do this?

Here is the code I have tried so far:

XAML Layout (FirstXAML.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="AllControlsDemo.FirstXaml">



<StackLayout>
    <Slider x:Name="sldr" 
      VerticalOptions="CenterAndExpand"
            ValueChanged="OnSliderValueChanged" />

<Label x:Name="lblValue"
       Text="A simple Label"
       Font="Large"
       HorizontalOptions="Center"
       VerticalOptions="CenterAndExpand" />

    <Button x:Name="btnClickme"
         Text="Click Me!"
            HorizontalOptions="Center"
            VerticalOptions="CenterAndExpand"
            Clicked="OnbtnClickme" />


    <Button x:Name="btnSecondXaml"
         Text="Second Xaml!"
            HorizontalOptions="Center"
            VerticalOptions="StartAndExpand"
            Clicked="OnbtnSecondXaml" />

  </StackLayout>
</ContentPage>

Code of (FirstXAML.xaml.cs)

using System;
using System.Collections.Generic;
using Xamarin.Forms;


namespace AllControlsDemo
{ 
    public partial class FirstXaml : ContentPage
    { 

  private Label valueLabel;
  float count = 0.050f;
  private Slider slider;



public FirstXaml ()
  {
   InitializeComponent ();
   valueLabel = this.FindByName<Label>("lblValue");
   slider = this.FindByName<Slider> ("sldr");

  }



void OnSliderValueChanged(object sender, ValueChangedEventArgs args)
  {
   valueLabel.Text = ((Slider)sender).Value.ToString("F3");
   count = float.Parse(valueLabel.Text);
  }



void OnbtnClickme(object sender, EventArgs args)
  {
   count += 0.050f;
   slider.Value = count;
  }



void OnbtnSecondXaml(object sender, EventArgs args)
  {
   // Write code here to move on second Xaml 

  }



}
}
like image 502
Ashish Tiwari Avatar asked Nov 28 '14 10:11

Ashish Tiwari


People also ask

How do I navigate from one screen to another in Xamarin?

Go to Solution Explorer-->Your Project-->Portable-->Right click-->Add-->New Item (Ctrl+Shift+A). Now, select Forms XAML page and give the name (MainPage. xaml). In this step, add another one page, whose name is called SecondPage.

Is Xamarin hybrid or cross-platform?

Mobile cross-platform support – Xamarin offers sophisticated cross-platform support for the three major platforms of iOS, Android, and Windows. Applications can be written to share up to 90% of their code, and Xamarin. Essentials offers a unified API to access common resources across all three platforms.

Is Xamarin forms cross-platform?

Xamarin provides a cross-platform development solution for mobile, tablet, and desktop applications.


2 Answers

I am also new on Xamarin. I copied your code and solved your problem.

Try this:

void OnbtnSecondXaml(object sender, EventArgs args)
  {
   // Write code here to move on second Xaml 

     Navigation.PushModalAsync(new SecondXaml());
  }
like image 61
Ajay Sharma Avatar answered Sep 24 '22 19:09

Ajay Sharma


This is what NavigationPage is for. You need to wrap FirstXAML inside of a NavigationPage, then you can use the Navigation property to navigate to other pages.

Navigation.PushAsync(page2);

Also, you do not need to use FindByName to assign local variables for controls in your xaml. Any control with a x:name property will automatically be assigned a local variable.

like image 33
Jason Avatar answered Sep 20 '22 19:09

Jason