shell - 如何使用弹出窗口在 xamarin shell 标题中设置背景图像?

标签 shell xamarin xamarin.forms flyout

我正在开发一个 Xamarin.Forms 4 项目,并且我正在使用 App Shell。

我使用的是 Tabbar,多亏了自定义渲染器,我才能将背景图像添加到“标题”

<TabBar>
        <Tab
            Title="ANALYSIS"
            Icon ="chart_icon.png">
            <ShellContent
                ContentTemplate="{DataTemplate local:Reports.ReportsPage}" />
        </Tab>
        // other tabs...
</TabBar>

我关注了THIS对于渲染器

我得到了这个

Header with background image

现在我必须添加侧边菜单,我将之前的 AppShell.xaml 代码替换为:

    <FlyoutItem  FlyoutDisplayOptions="AsMultipleItems">
        <ShellContent Title="ANALYSIS"
                      Icon="chart_icon.png"
                      ContentTemplate="{DataTemplate local:Reports.ReportsPage}" />
        //other tabs...
    </FlyoutItem>

我明白了: Header flyout without the background image (该图标是临时的,代表汉堡菜单图标🙃)

有没有办法创建渲染器或类似 Tabbar 渲染器的东西?

提前致谢!

最佳答案

根据你的描述,我想你是想为toolbar设置背景图片,而不是tabbar。

自定义渲染器可以做到这一点。

MyShell.cs

 public class MyShell:Shell
{
}

AppShell.xaml.cs 注意:AppShell需要继承MyShell。

 public partial class AppShell : MyShell
{
    public AppShell()
    {
        InitializeComponent();
    }
}

MyShellRenderer.cs

[assembly: ExportRenderer(typeof(MyShell), typeof(MyShellRenderer))]
namespace ShellDemo.Droid
{
public class MyShellRenderer : ShellRenderer
{
    public MyShellRenderer(Context context) : base(context)
    {
    }

    protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
    {
        return new CustomToolbarAppearanceTracker();
    }
}
public class CustomToolbarAppearanceTracker : IShellToolbarAppearanceTracker
{
    public void Dispose()
    {

    }

    public void ResetAppearance(Android.Support.V7.Widget.Toolbar toolbar, IShellToolbarTracker toolbarTracker)
    {

    }

    public void SetAppearance(Android.Support.V7.Widget.Toolbar toolbar, IShellToolbarTracker toolbarTracker, ShellAppearance appearance)
    {
        toolbar.SetBackgroundResource(Resource.Drawable.pink);
    }
}
}

enter image description here

关于shell - 如何使用弹出窗口在 xamarin shell 标题中设置背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60338755/

相关文章:

MVVM fresh 与 MVVM light xamarin 形式

c# - Xamarin CollectionView 缓慢滚动

bash - bash 是否有类似 perls __DATA__ 的东西?

c# - Xamarin Forms 访问所有 View 模型

android - 当我在 Android 中点击电子邮件时,主题总是空的

c# - Xamarin 形式的 iPhone X 中额外的底部和顶部空间

c# - 设置 Frame.BackgroundColor 在 Xamarin 表单上丢失圆角

debugging - 如何不忘记删除代码中的调试行

Python shell 没有显示错误,但程序没有运行

linux - 脚本应该在服务器启动期间自行运行