如何从Xamarin跨平台的一个屏幕进入另一个屏幕?

时间:2014-11-28 10:44:54

标签: xamarin xamarin-studio

我是Xamarin的新手,我想从一个屏幕转到另一个屏幕。我在第一个屏幕上有一个按钮,我想在点击该按钮后打开另一个屏幕。 我怎么能这样做?

这是我到目前为止尝试过的代码:

XAML布局(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>

代码(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 

  }



}
}

2 个答案:

答案 0 :(得分:9)

我也是Xamarin的新人。我复制了你的代码并解决了你的问题。

试试这个:

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

     Navigation.PushModalAsync(new SecondXaml());
  }

答案 1 :(得分:4)

这是NavigationPage的用途。您需要将FirstXAML包装在NavigationPage中,然后您可以使用Navigation属性导航到其他页面。

Navigation.PushAsync(page2);

此外,您不需要使用FindByName为xaml中的控件分配局部变量。任何具有x:name属性的控件都将自动分配一个局部变量。