我是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
}
}
}
答案 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
属性的控件都将自动分配一个局部变量。