Xamarin表单:如何为tabbedpage设置标题?

时间:2018-03-16 07:18:26

标签: xamarin.forms tabs

我使用3个标签实现TabbedPage,如下图所示。

enter image description here

在这3个标签的顶部,我正在尝试设置标题,这对于所有3个标签都是常见的。尝试了tabbedpage的title属性,但没有工作。

MyTabbedpage.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:Myapp;assembly=Myapp"
            BarBackgroundColor="#1C7DB4"
            BarTextColor="White"
            x:Class="Myapp.MyTabbedPage">
</TabbedPage>

MyTabbedpage.xaml.cs

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace Myapp
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class MyTabbedPage : TabbedPage
    {
        public MyTabbedPage(bool value)
        {
            InitializeComponent();

            Children.Add(new Topics());
            Children.Add(new Group());
            Children.Add(new Menu());
        }

        protected override bool OnBackButtonPressed()
        {
            return false;
        }
    }
}

enter image description here

请提出解决方案。

2 个答案:

答案 0 :(得分:1)

如果没有自定义渲染器,我认为你无法做到这一点。

您可以尝试这个预建的表单控件 - TabView - 位于: https://github.com/gruan01/XFControls

您也可以在NuGet上找到它。 您可以将图像设置到选项卡和其他增强功能上。

但我强烈建议使用自定义渲染器作为最终解决方案。

答案 1 :(得分:0)

public class MainPageCS : TabbedPage
{
  public MainPageCS ()
  {
    var navigationPage = new NavigationPage (new SchedulePageCS ());
    navigationPage.Icon = "schedule.png";
    navigationPage.Title = "Schedule";

    Children.Add (new TodayPageCS ());
    Children.Add (navigationPage);
  }
}

这是official documentation的代码段。在第7行,您可以看到标题的设置方式。

在您修改问题之后,您似乎希望将TabbedPage换成NavigationPage并为Title设置NavigationPage。例如:

new NavigationPage(new MyTabbedPage()) { Title = "Common Title" }; 

或者,您TabbedPage个孩子中的一个也可能是NavigationPage,具体取决于您的需求。