Mam aplikację Xamarin Forms
i obecnie pracuję nad kodem dla iOS. W moich ustawieniach mam opcję zmiany motywu aplikacji (Ciemny i Jasny). To zasadniczo zmienia kolory tła i kolory tekstu stron. Teraz chciałbym móc zmienić SelectedImageTintColor
i BarTintColor
z TabBar
oraz BarTintColor
i TintColor
z NavigationBar
. W tej chwili mam stworzyć mechanizm renderujący dla zakładkami strony:Jak zmienić kolory TabBar i NavigationBar w formularzach Xamarin?
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
App.theme = (Theme)App.DB.GetIntSetting("ThemeColor");
switch (App.theme)
{
case Theme.Dark:
{
TabBar.SelectedImageTintColor = UIColor.FromRGB(255, 165, 0);
TabBar.BarTintColor = UIColor.Black;
break;
}
case Theme.Light:
{
TabBar.SelectedImageTintColor = UIColor.FromRGB(60, 132, 60);
TabBar.BarTintColor = UIColor.White;
break;
}
}
}
Teraz te kolory zajmie tylko efekt przy pierwszym uruchomieniu aplikacji.
Badałem ten problem, ale nie mógł znaleźć żadnej odpowiedzi od nikogo o tym, jak rozwiązać ten problem.
Wiem, że było wiele zmian w Xamarin, więc chciałbym się dowiedzieć, czy są jakieś ostatnie zmiany lub nowe sposoby rozwiązania tego problemu. Jestem otwarty na zapoznanie się z ewentualnymi sugestiami, ponieważ częścią wymagań dotyczących wniosku jest możliwość zmiany tych kolorów.
Edits:
Moja Tabbed
strona została stworzona tak:
public partial class MainPage : TabbedPage
{
public MainPage()
{
InitializeComponent();
var phrasesPage = new NavigationPage(new PhrasesPage())
{
Title = "Play",
Icon = "play1.png"
};
var settingsPage = new NavigationPage(new SettingsPage())
{
Title = "Settings",
Icon = "settings.png"
};
// other declarations here
Children.Add(phrasesPage);
Children.Add(settingsPage);
// and more
}
}
Na przykład, jeśli wybiorę Dark Theme to TabBar
i NavigationBar
kolor tła będzie Czarnego, TabBar
' s selectedimage będzie pomarańczowy, a tekst NavigationBar
będzie biały. Podobnie, jeśli wybiorę opcję Jasny, wówczas kolor tła w kolorze TabBar
i NavigationBar
będzie biały, wybrany obrazek będzie zielony, a tekst NavigationBar
będzie czarny.
Czy używasz xaml lub prostego kodu do swoich widoków? –
Wyjaśnij, czego dokładnie chcesz? chcesz zmienić kolor ikony lub kolor tła paska zakładek. – KKRocks
@KKRocks, sprawdź moje zmiany. Dzięki –