我只是以xamarin形式开始,现在我正在尝试制作它,以便页面的标题栏和导航栏都根据您所在的页面而改变颜色。我也将工具栏位置设置为底部。
问题在于更改颜色只会更改底部的导航栏,而不会更改顶部的标题栏。
我的主页(选项卡式页面)后面的代码
public partial class MainPage : TabbedPage
{
public MainPage()
{
On<Android>().SetToolbarPlacement(ToolbarPlacement.Bottom);
InitializeComponent();
this.BarBackgroundColor = Color.FromHex("#008B8B");
this.BarTextColor = Color.White;
}
}
这会将我的导航栏底部的颜色更改为所需的颜色,但将顶部标题栏保留为默认的蓝色。
预算和费用是两个通用的内容页面(如您所见)
答案 0 :(得分:0)
如果尚未设置页面标题,请更正为空白。为了在每个页面的顶部设置标题栏的颜色,我为每个选项卡式页面子页面使用了导航页面,然后设置了这些导航页面的背景颜色
示例:应用首页的xaml
<controls:TabbedPage
xmlns:controls="clr-namespace:bla.Controls" xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="bla.Views.HomePage"
>
<controls:TabbedPage.Children>
<NavigationPage BarTextColor="White" Title="Home" Icon="home.png" Padding="0,-12,0,0">
<x:Arguments>
<HomePage/>
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Communities" BarTextColor="White" Icon="people_outline.png">
<x:Arguments>
<OtherPage />
</x:Arguments>
</NavigationPage>
</controls:TabbedPage.Children>
您的app.xaml:
MainPage = GetMainPage();
MainPage.SetValue(NavigationPage.BarBackgroundColorProperty, Color.Green);
public static Page GetMainPage()
{
return new HomePage(); //home page is a tabbed page
}
答案 1 :(得分:0)
您可以将App.xaml中的静态资源用于所有项目解决方案的NavigationPage样式。
将此代码粘贴到您的App.xaml中
<Application.Resources>
<Style TargetType="NavigationPage">
<Setter Property="BarBackgroundColor" Value="Color of Bar Background" />
<Setter Property="BarTextColor" Value="Color of your text on you Bar" />
</Style>
<Application.Resources>
此行可以回答您的问题。
<Setter Property="BarTextColor" Value="Color of your text on you Bar" />
我希望它能帮助您...