【问题标题】:xamarin forms - actionbar colorxamarin 表单 - 操作栏颜色
【发布时间】:2015-02-22 20:01:23
【问题描述】:

如何更改操作栏的颜色并恢复水平线?

我有一个用原生 xamarin android 开发的成功的 android 应用程序。现在我正在尝试使用 xaml 方法将其移植到 Xamarin Forms。

我创建了一个 hello world 应用并在 contentPage 中添加了一个工具栏项。当我最初启动应用程序时,可以看到带有我的图标的操作栏、正常的青色背景和一条漂亮的水平线。但是,一旦我的表单代码启动,它会显示我的图标、我的工具栏项图标,但背景是黑色的并且没有水平线。

我已经尝试过 NavigationPage.BackgroundColor,但没有任何影响。我在想我做错了什么。

这是我的 xaml。

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage.Title> My Sample </ContentPage.Title>

 <ContentPage.ToolbarItems>
        <ToolbarItem Name="test" Icon="ic_action_refresh" ></ToolbarItem>
  </ContentPage.ToolbarItems>


<Label Text="Hello Forms" VerticalOptions="Center" HorizontalOptions="Center" />

</ContentPage>

这是我的 app.cs

public class App 
{ 
public static Page GetMainPage() 
{ 
     var nav = new NavigationPage(new Splash()); 
     nav.BackgroundColor = Color.Teal; 
     return nav; 
} 
}

我还想在启动时隐藏默认操作栏并使用完整的初始屏幕,但我确实发现这个线程看起来可以工作。 http://forums.xamarin.com/discussion/18290/hiding-the-status-bar-and-the-action-bar-in-android-app

【问题讨论】:

  • 尝试设置 NavigationPage.BarBackgroundColor

标签: xamarin colors xamarin.forms


【解决方案1】:

尝试在 App.xaml.cs 中执行此操作

        MainPage = new NavigationPage(new TrainPage());
        ((NavigationPage)Application.Current.MainPage).BarBackgroundColor = Color.Black;
        ((NavigationPage)Application.Current.MainPage).BarTextColor = Color.White;

【讨论】:

    【解决方案2】:

    这就是我所做的。

    在 App.xaml 中,添加以下行,它适用于 iOS 和 Android

    <Style TargetType="NavigationPage">
    <Setter Property="BarBackgroundColor" Value="whatever color value here"/>
    </Style>
    

    【讨论】:

      【解决方案3】:

      在生成 NavigationPage 时,我很幸运地使用了以下方法,关键是 BarBackgroundColor 属性是设置栏本身颜色的关键。底层边界也应该仍然存在。您还可以使用您喜欢的任何 Color 方法,而不仅仅是 FromHex 方法。

      private Page GetNavigationPage(Page innerPage){
          var navigation =  new NavigationPage (innerPage);
          navigation.BarBackgroundColor= Color.FromHex ("#00263A"); 
              return navigation;
      }
      

      【讨论】:

        【解决方案4】:

        我想通了。我在 VS2013 中使用默认模板,Xamarin.Forms.Core 库参考是 1.0 版。此后进行了一些更新,其中一个修复了该问题。我刚刚通过 nuget 更新到最新版本,它开始工作了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多