public void FindMostDerivedABP([Values(false, true)] bool useCompiledXaml) { if (useCompiledXaml) { Assert.DoesNotThrow(() => MockCompiler.Compile(typeof(Gh12025))); } var layout = new Gh12025(useCompiledXaml); Assert.That(NavigationPage.GetIconColor(layout), Is.EqualTo(NavigationPage.IconColorProperty.DefaultValue)); Assert.That(Gh12025NavPage.GetIconColor(layout), Is.EqualTo(Color.HotPink)); }
protected virtual void UpdateToolbar() { ActionBarDrawerToggle toggle = _drawerToggle; if (Toolbar == null || NavigationStack.Count == 0 || CurrentPage == null || VirtualView == null) { return; } bool isNavigated = NavigationStack.Count > 1; Page currentPage = CurrentPage; _defaultNavigationIcon ??= Toolbar.NavigationIcon; if (isNavigated) { if (NavigationPage.GetHasBackButton(currentPage)) { Toolbar.NavigationIcon ??= _defaultNavigationIcon; if (toggle != null) { toggle.DrawerIndicatorEnabled = false; toggle.SyncState(); } var prevPage = (Page)NavigationStack[NavigationStack.Count - 2]; var backButtonTitle = NavigationPage.GetBackButtonTitle(prevPage); ImageSource image = NavigationPage.GetTitleIconImageSource(currentPage); if (!string.IsNullOrEmpty(backButtonTitle)) { Toolbar.NavigationContentDescription = backButtonTitle; } else if (image == null || Toolbar.SetNavigationContentDescription(image) == null) { Toolbar.SetNavigationContentDescription(Resource.String.nav_app_bar_navigate_up_description); } } else if (toggle != null && _flyoutPage != null) { toggle.DrawerIndicatorEnabled = _flyoutPage.ShouldShowToolbarButton(); toggle.SyncState(); } else { Toolbar.NavigationIcon = null; } } else { if (toggle != null && _flyoutPage != null) { toggle.DrawerIndicatorEnabled = _flyoutPage.ShouldShowToolbarButton(); toggle.SyncState(); Toolbar.SetNavigationContentDescription(Resource.String.nav_app_bar_open_drawer_description); } } Color tintColor = NavigationView.BarBackgroundColor; if (tintColor == null) { Toolbar.BackgroundTintMode = null; } else { Toolbar.BackgroundTintMode = PorterDuff.Mode.Src; Toolbar.BackgroundTintList = ColorStateList.ValueOf(tintColor.ToNative()); } Brush barBackground = NavigationView.BarBackground; Toolbar.UpdateBackground(barBackground); Color textColor = NavigationView.BarTextColor; if (textColor != null) { Toolbar.SetTitleTextColor(textColor.ToNative().ToArgb()); } Color navIconColor = NavigationPage.GetIconColor(CurrentPage); if (navIconColor != null && Toolbar.NavigationIcon != null) { DrawableExtensions.SetColorFilter(Toolbar.NavigationIcon, navIconColor, FilterMode.SrcAtop); } Toolbar.Title = currentPage?.Title ?? string.Empty; if (Toolbar.NavigationIcon != null && textColor != null) { var icon = this.Toolbar.NavigationIcon as DrawerArrowDrawable; if (icon != null) { icon.Color = textColor.ToNative().ToArgb(); } } UpdateTitleIcon(); UpdateTitleView(); UpdateToolbarVisibility(); }