其实我的应用有2个主题(粉色和蓝色),由App.xaml中的ResourceDictionary处理
在设置页面中切换开关会以编程方式更改ResourceDictionary的值和元素根据需要更改(背景,文本颜色等)。 它可能不是最漂亮的方式,但它有效..
但我有一个问题是改变android中Tabbar的背景颜色。
它的颜色值在Android项目中设置(来自styles.xml和Tabbar.axml的colorPrimary)。
但我无法找到
Color.Transparent
现在变白了)选项卡式页面代码由Xamarin表单项目创建。
public MainPage()
{
Page centerPage, rightPage, leftPage;
string TitleCenter = "S'exercer";
string TitleLeft = "Comprendre";
string TitleRight = "Aller plus loin";
switch (Device.RuntimePlatform)
{
case Device.iOS:
centerPage = new NavigationPage(new Center_Main())
{
Title = TitleCenter
};
rightPage = new NavigationPage(new Right_Main())
{
Title = TitleRight
};
leftPage = new NavigationPage(new Left_Main())
{
Title = TitleLeft
};
centerPage.Icon = "tab_feed.png";
rightPage.Icon = "tab_about.png";
leftPage.Icon = "offline_logo.png";
break;
default:
centerPage = new Center_Main()
{
Title = TitleCenter
// Nothing tab related here
};
rightPage = new Right_Main()
{
Title = TitleRight
};
leftPage = new Left_Main()
{
Title = TitleLeft
};
break;
}
由于
答案 0 :(得分:1)
使用Xaml就是这样的:
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" BarBackgroundColor="your_Color"></Tabbedpage>
以编程方式:
TabbedPage page=new Tabbedpage(){ BarBackgroundColor=Color.Blue};
您可以在tabbedPage构造函数中执行以下操作:
public MainPage()
{
BarBackgroundColor=Color.Blue;
}
注意:可以使用静态资源代替颜色名称。
像这样的东西
<... BarBackgroundColor={StaticResource color_name}>
答案 1 :(得分:0)
也许如果你直接进入填充Tabbar的颜色:
XAML:
<ContentPage Title = "Menu" BackgroundColor = "{DynamicResource primary_colour}">
的MainPage。
Application.Current.Resources ["primary_colour"] = Color.Green;