2014-11-28 10 views
5

Jestem nowy w Xamarin i chcę przejść do innego ekranu z jednego ekranu. Mam przycisk na pierwszym ekranie i chcę otworzyć kolejny ekran po kliknięciu tego przycisku. Jak mogę to zrobić?Jak przejść do innego ekranu z jednego ekranu na platformie Xamarin?

Oto kod próbowałem dotąd:

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> 

Kodeks (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 

    } 



} 
} 

Odpowiedz

9

Jestem również nowy na Xamarin. Skopiowałem twój kod i rozwiązałem twój problem.

Spróbuj tego:

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

    Navigation.PushModalAsync(new SecondXaml()); 
    } 
4

Do tego służy NavigationPage. Musisz zawinąć FirstXAML wewnątrz strony Navigation, następnie możesz użyć właściwości Navigation, aby przejść do innych stron.

Navigation.PushAsync(page2); 

Ponadto nie trzeba używać FindByName, aby przypisać zmienne lokalne dla elementów sterujących w swoim xaml. Każda kontrola z właściwością x:name automatycznie otrzyma zmienną lokalną.

+0

ja wijąc to 'Navigation.PushAsync (PAGE2);' 'na' SecondXAML' FirstXML.cs' ale że jest Strona2 nie jest dostępny. –

+0

Musisz utworzyć nową instancję SecondXAML, zanim będzie można ją przenieść na stos. – Jason

+0

Dobra, dziękuję Jason. –

Powiązane problemy