如何加入Xamarin表单工具栏和UINavigationBar、梯度

原创 2017年11月14日 15:37:57

我创建一个Xamarin形式跨平台应用为Android和iOS操作系统。我必须在操作系统的appbars添加一个渐变(在iOS Android和UINavigationBar、称为工具栏)有没有办法做到这一。请帮我应付的。任何东西。

enter image description here

你应该用户自定义渲染,像这样:

在你的PCL或共享的项目:

公共 类 navigationpagegradientheader : navigationpage
{
公共 navigationpagegradientheader(网页root) : 基地(root)
{
}

公共 静止的 只读 bindableproperty rightcolorproperty =
  bindableproperty。创造(属性名:名称(rightcolor),类型: 类型(颜色),declaringtype: 类型(navigationpagegradientheader),默认值: 颜色。经典口音)

公共 静止的 只读 bindableproperty leftcolorproperty =
   bindableproperty。创造(属性名:名称(leftcolor),类型: 类型(颜色),declaringtype: 类型(navigationpagegradientheader),默认值: 颜色。经典口音)

公共 颜色 rightcolor
{
    得到 { 退货 (颜色)方法(rightcolorproperty) }
    配置 { 赋值(rightcolorproperty,价值) }
}

公共 颜色 leftcolor
{
    得到 { 退货 (颜色)方法(leftcolorproperty) }
    配置 { 赋值(leftcolorproperty,价值) }
}

}
更新

因为“德翰wjiesekara渴望这个问题我已经花时间来创建一个例子,你可以看到它GitHub。

然后在你的Android工程:

【装配: exportrenderer(类型(navigationpagegradientheader), 类型(navigationpagegradientheaderrenderer))]
命名空间 yournamespace。机器人
{
公共 类 navigationpagegradientheaderrenderer : navigationrenderer
{
受保护的 重写 无效 onelementchanged(elementchangedeventargs<navigationpage>E)
{
基地。onelementchanged(E)

        / /运行时创建元素
        如果 (E。oldelement != 无效的 | | 元素 == 无效的)
        {
        退货
        }

        VaR控制装置= (navigationpagegradientheader)这。元素
        VaR语境= (主要活动)这。语境语境。ActionBar。setbackgrounddrawable(新 gradientdrawable(gradientdrawable。方向。从右到左, 新 int[ ] {控制装置。rightcolor。Android(),控制装置。leftcolor。Android() }))
    }
}

}
如果你使用formsappcompatactivity在你的主要活动只需添加一个Drawable在梯度这样地:

<?XML的版本=“1”编码=“UTF-8”???????>
<形 xmlns:Android=“http:/ / / / / schemas.android.com APK Android。” 安卓:形状=“矩形” >

<梯度
安卓:角=“180”
安卓:centercolor=“# 26c986”
安卓:endcolor=“# 109f8d”
Android的:startcolor=“# 36ed81”
安卓:类型=“线性” >

< /形状>
然后在你toolbar.axml文件称这个drawable:

< android.support.v7.widget.toolbar
xmlns:Android=“http:/ / / / / schemas.android.com APK Android。”
安卓:ID=“@ ID /工具栏”
安卓:layout_width=“match_parent”
安卓:layout_height=“包装_高兴”
安卓:背景=“”drawable /梯度”
安卓:主题=“@风格/ themeoverlay。appcompat ActionBar。黑暗。”
安卓:popuptheme=“@风格/ themeoverlay。appcompat。” >
在你的iOS项目:

【装配: exportrenderer(类型(navigationpagegradientheader), 类型(navigationpagegradientheaderrenderer))]
命名空间 yournamespace。iOS{
公共 类 navigationpagegradientheaderrenderer: navigationrenderer
{
公共 重写 无效 viewwillappear(布尔动画)
{
基地。viewwillappear(动画)

        VaR控制装置= (navigationpagegradientheader)这。元素

        VaR梯度层= 新 cagradientlayer()梯度层。界限 = 导航栏。界限梯度层。颜色 = 新 cgcolor[ ] {控制装置。rightcolor。tocgcolor(),控制装置。leftcolor。tocgcolor() }梯度层。起止点 = 新 cgpoint(零, 零点五)梯度层。端点 = 新 cgpoint(“1”, 零点五)

        uigraphics。beginimagecontext(梯度层。界限。大小)梯度层。renderincontext(uigraphics。getcurrentcontext())
        UIImage图片= uigraphics。getimagefromcurrentimagecontext()
        uigraphics。endimagecontext()

        导航栏。setbackgroundimage(图片, uibarmetrics。默认)
    }
}

}
最后在你代码文件文件称这这样的控制:

主页 = 新 navigationpagegradientheader(新 主页()) {
leftcolor = 颜色。fromhex(“# 109f8d”),
rightcolor = 颜色。fromhex(“# 36ed81”)
}

原文地址:http://www.apkbus.com/blog-919651-76494.html

Xamarin android沉浸式状态栏

沉浸式状态并不这么叫,其学名是透明状态栏,写这篇文章主要是让小白少走点弯路,用两种方法实现兼容android4.4、android5.*沉浸式状态栏...
  • kebi007
  • kebi007
  • 2017-04-17 22:51:32
  • 3357

xamarin toolbar入门例子

  • 2017年05月07日 18:37
  • 39KB
  • 下载

xamarin android toolbar(踩坑完全入门详解)

网上关于toolbar的教程有很多,很多新手,在使用toolbar的时候踩坑实在太多了,不好好总结一下,实在浪费。如果你想学习toolbar,你肯定会去去搜索androd toolbar,既然你能看到...
  • kebi007
  • kebi007
  • 2017-05-06 18:07:19
  • 3842

xamarin android实现Toolbar+DrawerLayout完美侧滑导航栏

#### 前言 #### 如果你有关注Material Design,会发现国内的一些app也在使用material Design这种设计,我常用的网易有道词典就使用了Material Design...
  • kebi007
  • kebi007
  • 2017-09-05 23:34:44
  • 2230

Xamarin.Forms 之简单介绍

Xamarin.Forms是一个跨平台、支持原生UI工具包 ,允许开发者创建可以共享到跨Android、iOS、和Windows Phonep平台上的用户接口等这些网上很多介绍了。那么它的基本要求必须...
  • cdf881125
  • cdf881125
  • 2015-08-27 17:29:50
  • 3209

如何加入Xamarin表单工具栏和UINavigationBar、梯度

我创建一个Xamarin形式跨平台应用为Android和iOS操作系统。我必须在操作系统的appbars添加一个渐变(在iOS Android和UINavigationBar、称为工具栏)有没有办法做...
  • ytwe520
  • ytwe520
  • 2017-11-14 15:37:57
  • 46

xamarin.iOS 导航栏添加按钮

导航栏添加按钮,打开侧边栏
  • Vivian_Zy
  • Vivian_Zy
  • 2016-12-05 14:00:25
  • 592

Xamarin介绍

郑重声明:   本文非Xamarin使用详解,也没什么有用的干货,只是给不知道Xamarin到底是什么的大家提供一点点微不足道的小介绍,看完以后啥收获都没有也不是没可能的(*/ω\*)。so.......
  • kof2019
  • kof2019
  • 2017-09-13 14:50:07
  • 1289

Xamarin.Forms Pages控件介绍一 - 通过代码构建Pages

Xamarin 3.0 最大的改进在于对移动端界面的统一,不再需要对不同平台的界面进行设计。程序员可以根据自己的喜好选择C#纯代码方式或者XAML方式通过Xamarin.Forms对移动平台UI进行定...
  • u014388424
  • u014388424
  • 2014-06-21 22:43:09
  • 5102

Xamarin.iOS 导航栏各个位置按钮设置

Xamarin.iOS导航条各个位置按钮设置
  • geanwen
  • geanwen
  • 2017-02-09 10:01:46
  • 1348
收藏助手
不良信息举报
您举报文章:如何加入Xamarin表单工具栏和UINavigationBar、梯度
举报原因:
原因补充:

(最多只允许输入30个字)