2017-01-12 19 views
6

Aşağıdaki form, Xamarin Formları ile oluşturulmuştur. Sorun alanını vurgulamak için kırmızı bir dikdörtgen çizdim. Farklı bir renk olması ve bir başlık göstermesi için başlığın içinde mavi renge ihtiyacım var. İşte Xamarin Formlar, üstbilgi çubuğunun rengini/başlığını kontrol eder

enter image description here

Ben yaklaşmak için çalışıyorum budur. Lütfen geri okunu ve hamburger menüsünün sağda olduğunu göz ardı edin (btw, MasterDetail'de hamburger sağa sola sahip olabilir mi?).

enter image description here

Aşağıdaki kod

Bunu oluşturmak için kullanıyorum budur. Bir NavigationPage'de (ListView olan) MainPage'i gömüyorum. Sonra bir MasterDetailPage detay sayfasını yukarıda belirtilen NavigationPage'e ayarlıyorum. BackgroundColor özelliğini ayarlamak burada çalışmıyor. Başlık özelliği de çalışmıyor dikkat edin.

Başlığın arka planının rengini ve başlığını nasıl değiştirebilirim?

 var navPage = new NavigationPage(new MainPage()); 

     App.Current.MainPage = new MasterDetailPage 
     { 
      BackgroundColor = Color.FromHex("#174873"), 
      Title = "MY DRIVES", 
      Master = new MenuPage() 
      { 
       Title = "Master Page Title" 
      }, 
      Detail = navPage 
     }; 

cevap

3

NavigationPage ait BarBackgroundColor ayarlayın. Sen (en temel örneği anlamda) böyle bir şey yapabilirsiniz:

 var nav = new NavigationPage 
     { 
      Title = "Detail" 
     }; 
     nav.PushAsync(new ContentPage() { Title = "Home" }); 
     nav.BarBackgroundColor = Color.MediumPurple; 

     var mdp = new MasterDetailPage() 
     { 
      Master = new ContentPage() 
      { 
       Title = "Master" 
      }, 
      Detail = nav 
     }; 
     MainPage = mdp; 

ContentPage başlığı NavigationPage tarafından sunulmakta olan bu çubuğunda başlığı gösterecektir şeydir.

+0

Evet,

 void OnTappedProfile(object sender, System.EventArgs e) { Navigation.PushAsync(new Profile()); } 

olduğu yere. Yeni bir soru olarak soracağım bir takipim var. Teşekkürler! –

13

için bir renk kullanmak istiyorsanız, tüm NavigationPage öğelerini daha kolay yapabilirsiniz. Bir NavigationPage

<?xml version="1.0" encoding="utf-8"?> 
<Application xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="My.App"> 
    <Application.Resources> 
     <!-- Application resource dictionary --> 
     <ResourceDictionary> 
      <!-- Pallete -->  
      <Color x:Key="primary-back-title-color">#4a148c</Color> 
      <Color x:Key="primary-title-color">#FFFFFF</Color> 
      <!-- Pallete-end --> 
      <Style ApplyToDerivedTypes="true" TargetType="NavigationPage"> 
       <Setter Property="BarBackgroundColor" Value="{StaticResource Key=primary-back-title-color}"/> 
       <Setter Property="BarTextColor" Value="{StaticResource Key=primary-title-color}"/> 
      </Style> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

için Uygulamaya giden küresel stil ekleyin Şimdi yapabilirsiniz: Profil çalıştı ContentPage

+0

Teşekkürler, bu benim için çalıştı. Bu, nav çubuğuna veya bir arka plan görüntüsüne logo gibi resimler eklemek için kullanılabilir mi? – Diomedes

+0

Sanırım bu şekilde kullanabilirsiniz. * NavigationPage * 'ın daha fazla özelleştirilmesine ihtiyacınız varsa, özel bir render kullanmanız gerekir. Karışık stili kullanmayı ve işlemeyi deneyebilirsiniz. Mükemmel bir çözüm olan – n0n1

+0

ve ApplyToDerivedTypes = "true" ifadesinin burada vurgulanması gerekiyor. çünkü ContentPage'i bu değer olmadan kullanıyorsanız, çalışmaz. teşekkür ederim – batmaci

İlgili konular