我有一个xamarin表单应用程序,我想在弹出菜单中添加一个页脚。在阅读了官方文档后,应该很简单,只需在AppShell.xaml中添加几行即可,如下所示:
<Shell.FlyoutFooterTemplate>
<DataTemplate>
<Label HeightRequest="300" BackgroundColor="Red"/>
</DataTemplate>
</Shell.FlyoutFooterTemplate>
当我在一个新项目中尝试它时,它运行得非常好,但由于某种原因,它在我当前的应用程序中不起作用,出现了以下错误:错误XLS0415在类型"Shell"中找不到可附加的属性"FlyoutFooterTemplate">
我试图找到FlyoutHeaderTemplate的定义,并在Shell(来自元数据(文件中找到:[1] :https://i.stack.imgur.com/xqZub.png
public Shell();
...
public DataTemplate FlyoutHeaderTemplate { get; set; }
public FlyoutHeaderBehavior FlyoutHeaderBehavior { get; set; }
public object FlyoutHeader { get; set; }
页眉和页脚应该有类似的定义,但页眉只有一个。该文件无法编辑,我也找不到它。有什么想法吗?为什么缺少Footer的定义,我该如何添加它,或者解决方法?
PS:从C#代码中添加页脚也不起作用,我试图清理/重建并重置两者,PC和VS。
首先,确认您可以添加一个简单的标题:
<Shell.FlyoutHeader>
<Label Text="This is the header." />
</Shell.FlyoutFooter>
如果这不起作用,那么您正在做一些根本错误的事情——发布<Shell>
XAML的代码,在其中添加了这些行。确保包含这些行,以显示它们在XAML中的位置。确保它们位于<Shell>
和</Shell>
之间,但不要嵌套在某个更深的节点中。例如,它们不能在<StackLayout>
、<ContentView>
或其他容器中——它们必须是<Shell>
的直接子级。
除非你在做一些花哨的事情,否则你不需要Template
。
简单尝试:
<Shell.FlyoutFooter>
<Label HeightRequest="300" BackgroundColor="Red"/>
</Shell.FlyoutFooter>
如果以上1(有效,但2(无效,则您的项目引用的是过期版本的Shell
。修复:
A。检查项目的Xamarin.Forms nuget
是否不需要更新。(解决方案/管理Nugets。(
B。或者删除bin
和obj
文件夹。然后重建解决方案
C。最糟糕的情况是,从一个新项目开始,在该项目中您可以使用该功能,并将其添加回所有文件中。