2017-09-26 25 views
0

enter image description hereレンダリングNavigationレンダリングを使用する次のように設定して、ツールバーの背景色を変更しようとしました。セカンダリツールバーの背景色を変更する方法 - xamarin ios

this.Toolbar.BackgroundColor = Color.Yellow; 

しかし、私のセカンダリツールバーの色は変更されていません。

誰でも私にxamarin iOSのセカンダリツールバーの背景色を変更する方法を教えてもらえますか?

+0

あなたがしている何本です探している? https://developer.xamarin.com/recipes/ios/content_controls/navigation_controller/change_the_nav_bar_color/ – cvanbeek

+0

私はセカンダリツールバーについて説明しています... Order属性で有効にするもの: .png "Order =" Secondary "Text =" Task4 "> user3903423

+0

「ツールバー」とは、カスタムレンダラーのNavigationRendererのツールバーを意味します。より直観的になると思う。 –

答えて

0

私は、次の方法でそれをやった:

[assembly: ExportRenderer(typeof(NavigationPage), typeof(ExtendedNavigationRenderer))] 
namespace Sample.iOS 
{ 
    public class ExtendedNavigationRenderer : NavigationRenderer 
    { 
     UIToolbar _secondaryToolbar; 

     public override void ViewDidLoad() 
     { 
      base.ViewDidLoad(); 

      //_secondaryToolbar = View.Subviews.OfType<UIToolbar>().FirstOrDefault(v => v.GetType() != typeof(UIToolbar)); 
      _secondaryToolbar = View.Subviews.OfType<UIToolbar>().FirstOrDefault(); 
      if (_secondaryToolbar != null) 
       _secondaryToolbar.BarTintColor = this.NavigationBar.BarTintColor; 
     } 

     public override void ViewDidLayoutSubviews() 
     { 
      base.ViewDidLayoutSubviews(); 

      if (_secondaryToolbar != null && _secondaryToolbar.Items != null) 
      { 
       foreach (UIBarButtonItem item in _secondaryToolbar.Items) 
       { 
        var label = item.CustomView.Subviews.OfType<UILabel>().FirstOrDefault(); 
        if (label != null) 
        { 
         label.TextColor = UINavigationBar.Appearance.TitleTextAttributes.ForegroundColor; 
         //label.Font = label.Font.WithSize(12f); 
        } 
       } 
      } 
     } 

は(TintColorのアプローチは、主NavigationBarとは若干異なる実際の色をもたらしますが、NavigationBar.BackgroundColorがnull)

関連する問題