如何在 Xamarin Forms 中实现 MenuItem - Shell
How to implement MenuItem in Xamarin Forms - Shell
我正在编写一个应用程序,想在 shell 中实现两个菜单项。问题是当我启动应用程序时,我只是得到黑色背景。非常感谢!!!
这是来自 Shell 的 XAML 文件:
<?xml version="1.0" encoding="utf-8" ?>
<Shell
x:Class="MyApp.MainShell"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
BackgroundColor="#9da7d6"
IconImageSource="NoWifiPic">
<MenuItem Text="Rate" IconImageSource="RatingStar.png" Clicked="MenuItem_Clicked"/>
<MenuItem Text="Support" IconImageSource="Feedback.png" Clicked="MenuItem_Clicked_1"/>
</Shell>
这是来自 Shell 的代码文件:
public partial class MainShell : Shell
{
public MainShell()
{
InitializeComponent();
}
private void MenuItem_Clicked(object sender, EventArgs e)
{
//Code
}
private async void MenuItem_Clicked_1(object sender, EventArgs e)
{
//Code
}
}
这是来自 App 的代码文件:
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new MainShell();
}
protected override void OnStart()
{
}
protected override void OnSleep()
{
}
protected override void OnResume()
{
}
}
试试这个,它是从 Page1
开始的。将其更改为您想要开始的自己的页面。
<ShellItem Route="Startpage">
<ShellContent ContentTemplate="{DataTemplate local:Page1}" Route="home" />
</ShellItem>
在此之后您可以添加菜单项
<ShellItem Route="Startpage">
<ShellContent ContentTemplate="{DataTemplate local:Page1}" Route="home" />
</ShellItem>
<MenuItem Text="Rate" IconImageSource="RatingStar.png" Clicked="MenuItem_Clicked"/>
<MenuItem Text="Support" IconImageSource="Feedback.png" Clicked="MenuItem_Clicked_1"/>
这里是文档https://docs.microsoft.com/nl-nl/xamarin/xamarin-forms/app-fundamentals/shell/
如果您想 hide
弹出按钮中的 Startpage or HomePage
按钮使用此
FlyoutItemIsVisible="False"
将其添加到 ShellItem。
<ShellItem Route="Startpage" FlyoutItemIsVisible="False" >
<ShellContent ContentTemplate="{DataTemplate local:MainPage}" Route="home"/>
</ShellItem>
<MenuItem Text="Rate" IconImageSource="RatingStar.png" Clicked="MenuItem_Clicked"/>
<MenuItem Text="Support" IconImageSource="Feedback.png" Clicked="MenuItem_Clicked_1"/>
首页:
在 FlyoutItem 对象之前声明的任何 MenuItem 对象将出现在弹出窗口中的 FlyoutItem 对象之前,而在 FlyoutItem 对象之后声明的任何 MenuItem 对象将出现在弹出窗口中的 FlyoutItem 对象之后。
我们不能只添加 MenuItem。当您打开应用程序时,我们需要一个 ShellContent 来显示默认页面,但 MenuItem 除外。但是我们可以像 @Bas H 用 FlyoutItemIsVisible
属性 说的那样隐藏它。
<FlyoutItem FlyoutItemIsVisible="False" x:Name="aboutItem">
<ShellContent Title="Test2" ContentTemplate="{DataTemplate local:ItemsPage}"></ShellContent>
</FlyoutItem>
<MenuItem Text="Rate" IconImageSource="tab_about.png" Clicked="MenuItem_Clicked"/>
<MenuItem Text="Support" IconImageSource="tab_about.png" Clicked="MenuItem_Clicked"/>
如果您将 FlyoutItemIsVisible
设置为 false 并且仍然看到该按钮的屏幕截图,您可以尝试卸载并重新安装该应用程序。
我正在编写一个应用程序,想在 shell 中实现两个菜单项。问题是当我启动应用程序时,我只是得到黑色背景。非常感谢!!!
这是来自 Shell 的 XAML 文件:
<?xml version="1.0" encoding="utf-8" ?>
<Shell
x:Class="MyApp.MainShell"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
BackgroundColor="#9da7d6"
IconImageSource="NoWifiPic">
<MenuItem Text="Rate" IconImageSource="RatingStar.png" Clicked="MenuItem_Clicked"/>
<MenuItem Text="Support" IconImageSource="Feedback.png" Clicked="MenuItem_Clicked_1"/>
</Shell>
这是来自 Shell 的代码文件:
public partial class MainShell : Shell
{
public MainShell()
{
InitializeComponent();
}
private void MenuItem_Clicked(object sender, EventArgs e)
{
//Code
}
private async void MenuItem_Clicked_1(object sender, EventArgs e)
{
//Code
}
}
这是来自 App 的代码文件:
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new MainShell();
}
protected override void OnStart()
{
}
protected override void OnSleep()
{
}
protected override void OnResume()
{
}
}
试试这个,它是从 Page1
开始的。将其更改为您想要开始的自己的页面。
<ShellItem Route="Startpage">
<ShellContent ContentTemplate="{DataTemplate local:Page1}" Route="home" />
</ShellItem>
在此之后您可以添加菜单项
<ShellItem Route="Startpage">
<ShellContent ContentTemplate="{DataTemplate local:Page1}" Route="home" />
</ShellItem>
<MenuItem Text="Rate" IconImageSource="RatingStar.png" Clicked="MenuItem_Clicked"/>
<MenuItem Text="Support" IconImageSource="Feedback.png" Clicked="MenuItem_Clicked_1"/>
这里是文档https://docs.microsoft.com/nl-nl/xamarin/xamarin-forms/app-fundamentals/shell/
如果您想 hide
弹出按钮中的 Startpage or HomePage
按钮使用此
FlyoutItemIsVisible="False"
将其添加到 ShellItem。
<ShellItem Route="Startpage" FlyoutItemIsVisible="False" >
<ShellContent ContentTemplate="{DataTemplate local:MainPage}" Route="home"/>
</ShellItem>
<MenuItem Text="Rate" IconImageSource="RatingStar.png" Clicked="MenuItem_Clicked"/>
<MenuItem Text="Support" IconImageSource="Feedback.png" Clicked="MenuItem_Clicked_1"/>
首页:
在 FlyoutItem 对象之前声明的任何 MenuItem 对象将出现在弹出窗口中的 FlyoutItem 对象之前,而在 FlyoutItem 对象之后声明的任何 MenuItem 对象将出现在弹出窗口中的 FlyoutItem 对象之后。
我们不能只添加 MenuItem。当您打开应用程序时,我们需要一个 ShellContent 来显示默认页面,但 MenuItem 除外。但是我们可以像 @Bas H 用 FlyoutItemIsVisible
属性 说的那样隐藏它。
<FlyoutItem FlyoutItemIsVisible="False" x:Name="aboutItem">
<ShellContent Title="Test2" ContentTemplate="{DataTemplate local:ItemsPage}"></ShellContent>
</FlyoutItem>
<MenuItem Text="Rate" IconImageSource="tab_about.png" Clicked="MenuItem_Clicked"/>
<MenuItem Text="Support" IconImageSource="tab_about.png" Clicked="MenuItem_Clicked"/>
如果您将 FlyoutItemIsVisible
设置为 false 并且仍然看到该按钮的屏幕截图,您可以尝试卸载并重新安装该应用程序。