Xaml 如何将xamarin表单选项卡式页面中的选项卡2设置为启动时的默认选项卡

Xaml 如何将xamarin表单选项卡式页面中的选项卡2设置为启动时的默认选项卡,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,我在xamarin表单中开发了一个应用程序,它看起来如下所示: 当应用程序加载时,“朋友”选项卡是第一个要加载的选项卡,我如何使其成为应用程序启动时第一个要加载的选项卡 以下是我的xaml代码: <?xml version="1.0" encoding="UTF-8"?> <TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="h

我在xamarin表单中开发了一个应用程序,它看起来如下所示:

当应用程序加载时,“朋友”选项卡是第一个要加载的选项卡,我如何使其成为应用程序启动时第一个要加载的选项卡

以下是我的xaml代码:

<?xml version="1.0" encoding="UTF-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
            xmlns:local="clr-namespace:AppName;assembly=AppName"
            x:Class="AppName.HomePage">
    <TabbedPage.Children>
        <NavigationPage x:Name="Friends" Title="Friends" Icon="firendstab.png">
            <x:Arguments>
                <local:FriendPage />
            </x:Arguments>
        </NavigationPage >
        <NavigationPage  x:Name="Snap" Title="Snap" Icon="snaptab.png">>
            <x:Arguments>
                <local:CameraPage />
            </x:Arguments>
        </NavigationPage>
        <NavigationPage x:Name="Notes" Title="Notes" Icon="notetab.png">
            <x:Arguments>
                <local:NotePage />
            </x:Arguments>
        </NavigationPage>
    </TabbedPage.Children>
</TabbedPage>
在过去的两天里,我一直在搜索谷歌,所以我想是时候问一下了

我认为您必须设置“CurrentPage”属性

在代码中类似于

            TabbedPage tp = new TabbedPage();
            tp.Children.Add(new PageFriends());
            tp.Children.Add(new PageSnap());
            tp.Children.Add(new PageNotes());
            tp.CurrentPage = tp.Children[1];

您可以访问
选项卡页
的子项的枚举数,并将其位置前进两次以获得“第二个选项卡”。将该页面指定为当前页面:

public HomePage()
{
    InitializeComponent();
    var pages = Children.GetEnumerator();
    pages.MoveNext(); // First page
    pages.MoveNext(); // Second page
    CurrentPage = pages.Current;
}

对我来说,我所做的是:

  (this.Parent as TabbedPage).CurrentPage = (this.Parent as TabbedPage).Children[2];
因为在我的选项卡式页面中,我添加了如下页面

this.Children.Add(new Landing());
this.Children.Add(new Categories());
this.Children.Add(new Collections());
this.Children.Add(new Options());

以上代码片段将引导我进入收藏页面。

感谢您的回复!我尝试了您的代码示例,但在代码的最后一行出现了此错误:错误CS0021:无法将带[]的索引应用于'Xamarin.Forms.TabbedPage'类型的表达式(CS0021)还有其他建议吗?可能是tp.Children[1],但我的只是使用代码的示例。如果您使用xaml,我认为您必须编写其他内容来将第二个选项卡分配给CurrentPage属性。这有助于我找到解决方案。虽然这个答案可能是正确和有用的,但如果您在其中包含一些解释,以解释它如何帮助解决问题,则更可取。如果有一个变化(可能是无关的)导致它停止工作,并且用户需要了解它曾经是如何工作的,那么这在将来变得特别有用。
  (this.Parent as TabbedPage).CurrentPage = (this.Parent as TabbedPage).Children[2];
this.Children.Add(new Landing());
this.Children.Add(new Categories());
this.Children.Add(new Collections());
this.Children.Add(new Options());