Xamarin 表单更改导航栏的背景颜色

2024-03-12

我正在使用 Xamarin.Forms 并尝试更改 iOS 上导航栏的背景颜色。

我有一个继承自 NavigationPage 的自定义导航栏类​​,具有可绑定属性和构造函数,用于设置导航栏的颜色。根据我的理解,导航栏顶部有一个默认背景(黑色) Xamarin.Forms 导航背景。我可以使用 SetColor() 方法设置背景颜色(见下文)。然而,它留下了一条黑线,这是导航栏(iOS)的背景,如图所示。图片链接 http://s13.postimg.org/nei0pbjs7/nav.png

现在,我尝试将 iOS 导航栏背景颜色设置为白色或透明。我花了很多时间但没有任何效果。有人可以帮忙如何将背景设置为白色吗?

//PCL class
public class CustomNavigationalPage : NavigationPage
{
    public  static readonly BindableProperty BarBgColorProperty = 
        BindableProperty.
        Create<CustomNavigationalPage, UIColor>  
            (p => p.BarBackgroundColorR, null);

    public UIColor BarBackgroundColorR
    {
        get { return (UIColor)base.GetValue (BarBgColorProperty); }
        set { base.SetValue (BarBgColorProperty, value); }
    }

    public NavigationalPageCustomized() : base()
    {
        SetColor();
    }

    void SetColor()
    {
        BarBackgroundColor = Color.Transparent; 
        BarTextColor = Color.Blue;
    }
}

导航栏渲染器类:

[assembly: ExportRenderer (typeof (CustomNavigationalPage), typeof (CustomNavigationPageRenderer))]

 namespace project.iOS
 {
     public class CustomNavigationPageRenderer : NavigationRenderer
     {
         public CustomNavigationPageRenderer()
         {
             // UINavigationBar.Appearance.SetBackgroundImage (UIImage.FromFile ("navbg.png"), UIBarMetrics.Default);
         }

         protected override void OnElementChanged (VisualElementChangedEventArgs args)
         {
             base.OnElementChanged (args);

             var nb = (NavigationalPageCustomized) Element;

             if (nb != null) 
             { 
                 nb.BarBackgroundColorR = UIColor.White;
             }
         }
     }
  }

在您的中尝试此代码PCL of Xamarin.forms。更改下面的代码 App.xaml.cs 的构造函数。

public App()
{
    MainPage = new NavigationPage(new Page1())
    {
        BarBackgroundColor = Color.Gray
    };
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xamarin 表单更改导航栏的背景颜色 的相关文章

随机推荐

  • 获取解析后的PHP文件

    我试图在解析 PHP 文件后获取其内容 然后将其存储在变量中 除了这个例子之外 我无法通过谷歌获得任何有用的信息 ob start include file content ob get clean 但这会以纯文本形式返回内容 即 标签仍然
  • 点击“后退”按钮时将数据保存在编辑文本中

    因此 在活动 1 中 我单击一个按钮进入活动 2 在活动 2 中 我将一些数据输入到 EditText 中 当我点击手机上的后退按钮时 它会将我带到活动 1 这是正确的 但如果我再次点击活动 1 按钮 我在 EditText 中输入的任何文
  • Android Handler.post,到底发生了什么

    几天以来 我试图弄清楚如果我执行代码到底会发生什么 void function somePreExecutionCode new Handler post new Runnable Override public void run some
  • 如何使用 Numpy 对字符串数组进行一次性编码?

    我知道那里有次优的解决方案 但我正在尝试优化我的代码 到目前为止 我发现的最短方法是 import numpy as np from sklearn preprocessing import OrdinalEncoder target np
  • 使用 re.match 或 re.search 返回多个匹配项

    我正在将一些代码转换为微型蟒蛇 http micropython org我陷入了一个特定的正则表达式 在Python中我的代码是 import re line 0 1 24 2 1 180108205500W 00001 290 m3 be
  • UITableView 中的 UISearchBar

    我试图模仿类似于 iPod 应用程序的艺术家表视图的行为 它是一个分段表视图 右侧有一个部分索引 顶部有一个搜索栏 但在显示视图时最初是隐藏的 我使用的是sdk 3 1 2和IB 所以简单地拖了一个UISearchDisplayContro
  • 为什么 Visual Studio 2019 不支持 Openmp 的 for-reduction 中的关键字“max”?

    当我像这样使用 openmp 时 pragma omp parallel for reduction max dumax IDE 将在 Openmp 中引发错误 max reduction 无效 pragma omp parallel fo
  • 托管 c++/cli .net 将固定字节数组转换为字符串^

    如何在托管 c cli 中将固定字节数组转换为字符串 例如我有以下字节数组 Byte byte data 5 byte data 0 a byte data 1 b byte data 2 c byte data 3 d byte data
  • 如何在 Kendo Grid 的每一行中添加自定义按钮

    我正在尝试将自定义按钮添加到 Kendo 网格的每一行 但我没有得到所需的输出 所以我的要求是向每一行添加动态按钮 然后单击这些按钮 我需要处理一些我需要的东西要传递给该按钮单击的几个列值 我试过类似的东西 Html Kendo Grid
  • 跟踪 IP 地址和国家/地区名称 (asp.net)?

    昨天我看到一个网站 其中列出了IP地址和国家名称 说最近访问过的成员 带有国家名称 城市名称的IP地址列表 我可以知道如何跟踪该信息 任何参考或任何代码吗 谢谢 请检查这些问题 检测 估计 ASP NET 中 http 请求的国家 地区 h
  • 用于列出用户的 S3 存储桶内的特定文件夹的 IAM 策略

    我在桶下面有下面的钥匙客户演示 demo for customers customer1 demo for customers customer2 现在我有 2 个客户客户1 and 客户2 这就是我要的 仅授予他们访问权限客户演示 buc
  • 给定一个数的质因数分解,生成该数的所有因数

    如果您已经对一个数字进行质因数分解 那么获得该数字的所有因数的集合的最简单方法是什么 我知道我可以从 2 循环到 sqrt n 并找到所有可整除的数字 但这似乎效率很低 因为我们已经有了质因数分解 我想它基本上是组合 选择函数的修改版本 但
  • 熊猫 corr() 与 corrwith()

    Pandas 提供两种不同的相关函数的原因是什么 DataFrame corrwith 其他 轴 0 drop False 两个DataFrame对象的行或列之间的相关性成对计算 vs DataFrame corr method pears
  • Jackson 序列化 可选,YAML 为空值

    目前我正在使用YAML工厂 https fasterxml github io jackson dataformats text javadoc yaml 2 11 配置ObjectMapper序列化和反序列化Pojos lt gt YAM
  • 显示片段中的对话框?

    我有一些片段需要显示常规对话框 在这些对话框中 用户可以选择是 否答案 然后片段应该做出相应的行为 现在Fragment类没有onCreateDialog 方法来重写 所以我想我必须在包含的外部实现对话框Activity 没关系 但是接下来
  • 当 url 包含锚点时,获取页面加载时网页滚动条的垂直位置

    我使用 jQuery 的scrollTop 方法来获取页面加载时滚动条的垂直位置 我需要在执行 url 中的锚点后获取此值 例如 url www domainname com foo 我可以使用以下代码 它可以在 Firefox 和 IE
  • iPhone 解锁时 Xcode“设备锁定”

    当我尝试构建并运行时 Xcode 说我的设备已锁定 我看了看我的 iPhone 它根本没有锁定 我该如何解决 我的手机设置为 信任 Mac 但我在 Xcode 6 1 1 中仍然遇到此错误 这对我有用 拔掉设备插头 退出 xcode 打开X
  • 测试示例集属性应等于训练示例集 Rapidminer SVM 的 OR 超集

    I am new to Rapid Miner and using SVM Linear in it My model is as I made Training Example set which consist of 3552 exam
  • 动态 Java 整数/长溢出检查与性能

    这是一个相当理论化的问题 因此虽然该语言是 Java 特有的 但任何通用的解决方案都足够了 假设我想编写一个简单的阶乘函数 long factorial int n handle special cases like negatives e
  • Xamarin 表单更改导航栏的背景颜色

    我正在使用 Xamarin Forms 并尝试更改 iOS 上导航栏的背景颜色 我有一个继承自 NavigationPage 的自定义导航栏类 具有可绑定属性和构造函数 用于设置导航栏的颜色 根据我的理解 导航栏顶部有一个默认背景 黑色 X