问题描述
我正在尝试创建自定义 TitleView(Shell 页面的顶部栏,汉堡图标菜单所在的位置)。现在,在设计中,我在该区域有一些元素 - 通知铃、信息按钮和带有名称的用户图像。但是,作为 xamarin.forms 的 Xamarin.Forms 不允许轻松覆盖此元素。
我将如何为其创建自定义控制器?我可以为条目、标签、文本编辑器等执行此操作,但我尝试过的任何内容都不适用于 TitleView。
下面是当前状态的图像(我什至不能改变汉堡包图标的颜色,每个 png 都变成白色,哈哈)
以及我希望实现的目标:
我非常感谢有关如何创建此自定义渲染器的任何指示和解释。谢谢大家!
解决方法
查看官方文档,了解如何在 Shell 应用程序中自定义 TitleView:
Xamarin.Forms Shell pages - Documentation
部分
1 - 设置页面颜色
- ForegroundColor,属于 Color 类型,用于定义文本和图标的阴影颜色。
2 - 在导航栏中显示视图
Shell.TitleView 附加属性,属于 View 类型,可启用任何 View 显示在导航栏中。
虽然可以在子类 Shell 对象上设置此属性,但它可以 也可以在想要在导航中显示视图的任何页面上设置 酒吧。例如,以下 XAML 显示在 ContentPage 的导航栏:
您可以在 TitleView 中添加 ImageButtons 并使用 XamarinCommunityToolkit 中的 IconTintColorEffect 来更改图标的颜色:
, 当您想要更改/覆盖元素的行为方式时,建议使用自定义控制器。您需要做的是自定义标题视图,您可以像自定义视图中的内容一样轻松定义该元素。
您需要做的就是:
<!-- YOUR XAML -->
<NavigationPage.TitleView>
<Grid>
<!-- YOUR CONTENT -->
</Grid>
</NavigationPage.TitleView>
我想说的是,您可能会严格控制导航栏的高度,您需要遵守一些限制。
如果您需要某种模板来在多个位置重复使用此标题栏,那么您可能需要一个控制模板。
您可能会访问这些链接: