- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个针对 Android、IOS 和 UWP 的 Xamarin Forms 项目。在我的 Xamarin.Forms 项目 App.cs 中,我已将 MainPage 设置为 MasterDetailPage 继承类。我已经创建了一个自定义导航栏,所以我不想看到默认设置。
我已经按照步骤隐藏了 IOS 和 Android 的默认栏 from this question .现在我也想为 UWP 隐藏它。
我在 Xamarin Forms 项目中尝试过:
NavigationPage.SetHasNavigationBar(this, false);
在 UWP 项目中(我分别尝试过同时进行):
Windows.UI.ViewManagement.StatusBar.GetForCurrentView().HideAsync();
Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().TryEnterFullScreenMode();
Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().SuppressSystemOverlays = true;
但没有任何帮助,所以在 UWP 中我仍然看到 two menubuttons .在图像中,我想隐藏灰色按钮(及其所属的栏)。
如果我将 App.cs 中的 MainPage 设置为 NavigationPage 并且不使用 MasterDetailPage,则以下代码有助于删除栏:
NavigationPage.SetHasNavigationBar(this, false);
如何使用 MasterDetailPage 解决这个问题?
感谢您的帮助!
编辑:添加代码。
我在 MainPage 和 MenuPage 中看到了导航栏。名为 Menubar 的 StackLayout 是我希望看到的唯一顶部栏。
应用程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace AddressReadApp2
{
public class App : Application
{
public App()
{
MainPage = new MasterDetail();
NavigationPage.SetHasNavigationBar(this, false);
NavigationPage.SetHasNavigationBar(MainPage, false);
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
MasterDetail.cs:
namespace AddressReadApp2
{
public class MasterDetail : MasterDetailPage
{
public MasterDetail ()
{
NavigationPage.SetHasNavigationBar(this, false);
Detail = new NavigationPage(new MainPage());
NavigationPage.SetHasNavigationBar(Detail, false);
BackgroundColor = Color.FromRgb(0, 170, 167);
Title = "ibi";
Master = new MenuPage();
MasterBehavior = MasterBehavior.Popover;
}
}
}
MenuPage.xaml.cs:
namespace AddressReadApp2.Pages
{
public partial class MenuPage : ContentPage
{
MasterDetail __parent = null;
MasterDetail _parent
{
get
{
if (__parent == null)
__parent = (MasterDetail)this.Parent;
return __parent;
}
}
MainPage __detail;
MainPage _detail
{
get
{
if (__detail == null && _parent != null)
__detail = (MainPage)((NavigationPage)_parent.Detail).CurrentPage;
return __detail;
}
}
public MenuPage()
{
NavigationPage.SetHasNavigationBar(this, false);
Title = "ibi";
//Icon = "ibi_logo.png";
InitializeComponent();
this.BackgroundColor = Color.FromRgb(0, 170, 167);
menu.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => _parent.IsPresented = !_parent.IsPresented) });
Device.OnPlatform(
iOS: () =>
{
MenuBar.Padding = new Thickness(0, 25, 0, 0);
}
);
}
}
菜单页面.xaml:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AddressReadApp2.Pages.MenuPage">
<StackLayout Orientation="Vertical" VerticalOptions="FillAndExpand">
<StackLayout x:Name="MenuBar" Orientation="Horizontal">
<Image x:Name="menu" Source="menu.png" HeightRequest="35" WidthRequest="35" HorizontalOptions="Start" Margin="10,2,0,0" />
<Image x:Name="logo" Source="ibi_logo2.png" HeightRequest="35" WidthRequest="35" HorizontalOptions="EndAndExpand" Margin="0,0,10,2" />
</StackLayout>
<Grid RowSpacing="2" ColumnSpacing="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<!-- Between here are Labels for the menu -->
</Grid>
</StackLayout>
</ContentPage>
MainPage.xaml.xs:
namespace AddressReadApp2
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
MenuBar.BackgroundColor = Color.White;
menu.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => ((MasterDetailPage)Parent.Parent).IsPresented = true) });
}
}
}
主页.xaml:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AddressReadApp2.MainPage" BackgroundColor="White" NavigationPage.TitleIcon="icon.png" x:Name="MainPage">
<StackLayout x:Name="mainStack" Orientation="Vertical" VerticalOptions="FillAndExpand">
<StackLayout x:Name="MenuBar" Orientation="Horizontal">
<Image x:Name="menu" Source="menu2.png" HeightRequest="35" WidthRequest="35" HorizontalOptions="Start" Margin="10,2,0,0" />
<Image x:Name="logo" Source="ibi_logo.png" HeightRequest="35" WidthRequest="35" HorizontalOptions="EndAndExpand" Margin="0,0,10,2" />
</StackLayout>
<StackLayout x:Name="pnlStart" Orientation="Vertical" VerticalOptions="Fill" HorizontalOptions="Fill">
<StackLayout x:Name="pnlWelcome" VerticalOptions="End" Padding="10">
<Label Text="Welcome" VerticalOptions="Center" HorizontalOptions="Center" FontSize="25" />
</StackLayout>
</StackLayout>
</StackLayout>
</ContentPage>
最佳答案
我觉得可以
public class CustomMasterDetailRenderer :MasterDetailPageRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<MasterDetailPage> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.CollapsedPaneWidth = 0;
Control.CollapseStyle = Xamarin.Forms.PlatformConfiguration.WindowsSpecific.CollapseStyle.Partial;
Control.MasterToolbarVisibility = Windows.UI.Xaml.Visibility.Collapsed;
Control.DetailTitleVisibility = Windows.UI.Xaml.Visibility.Collapsed;
Control.MasterTitleVisibility = Windows.UI.Xaml.Visibility.Collapsed;
Control.ContentTogglePaneButtonVisibility =
Windows.UI.Xaml.Visibility.Collapsed;
}
}
}
现在你可以这样调用我认为你的调用和代码是正确的,但你需要为 UWP 自定义渲染
NavigationPage.SetHasBackButton(this, false);
NavigationPage.SetHasNavigationBar(this, false);
关于c# - Xamarin Forms MasterDetailPage 主页隐藏菜单按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41224320/
如果应用程序是通过企业签名分发的,那么是否有任何框架允许我在后台接收Home 或Power 按下事件? 最佳答案 iOS 中的所有事件都是 UIEvent,它是 GSEvent 的包装器。通过一些技巧
版本为 1.4.1.4 的 Prestashop 网站使用 category.php 文件作为类别页面。不幸的是,1.6.0.6 的更新删除了该文件,因为它已被视为已弃用。 ( URL structu
我最近在 Github 存储库中为我的公司创建了一个全局 wiki。这是一个空的存储库,我创建它只是为了使用它的 wiki。 我的问题:在这个 wiki 存储库的首页上,显示了自述文件。这个自述文件是
我有一个非常简单的体育网站,主页上有不同运动的链接,如足球、篮球、无挡板篮球等。我想要的是当用户点击 Football 时,要存储的值,以便下次访问者访问该页面时它将打开足球页面。 到目前为止,我已经
我已经实现了onOptionsItemSelected来控制主页按钮: override fun onOptionsItemSelected(item: MenuItem): Boolean {
我不知道如何为匿名用户隐藏主页选项卡,Plone 版本是 4.3.7。最好隐藏导航栏,我发现可以通过 ZMI Portal_actions/portal_tabs/index_html 来做到这一点,
我正在尝试通过修改注册表来更改 IE 主页。我已经使用 bat 文件成功完成了此操作; REG ADD "HKCU\SOFTWARE\MICROSOFT\INTERNET EXPLORER\MAIN"
我已经使用 Spring Roo 生成了一些页面,我需要在应用程序的主页上显示数据库中的一些项目。那么我如何将带有数据的模型传递到主页,Roo 添加了以下行,我已注释掉 我使用 Roo 创建
我有 HomeController 类: @Controller public class HomeController { @RequestMapping("/") public S
用户按下“主页”按钮时,我需要显示退出确认对话框。如果是,则需要退出该应用程序。 按下“主页”按钮时是否可以显示? 最佳答案 这可能会导致您的应用被拒绝 从Apple HIG: 总是准备停止 当人们按
我只是想知道是否有人在Magento中格式化面包屑有任何经验? 我想用图片替换当前显示文本“HOME”的链接。 我以为用图片替换某些文本是一种简单的情况,但是似乎“HOME”文本/链接是动态创建的,因
我制作了登录功能,因此当用户登录时,它将导航到其他页面,但问题是登录成功后,用户只需按物理后退按钮即可再次返回登录页面。现在我想要的是登录后用户无法再次返回登录页面,因此当按下物理后退按钮时,它将关闭
我有 2 个 Activity ,1 个用于注册,1 个用于我的应用程序主页。现在为了在它们之间做出选择,我必须创建另一个 Activity 来检查一些细节并决定去哪个 Activity 。问题是,在
public void onBackPressed() { Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCa
实际上我正在开发一个应用程序,这个应用程序应该在安装的设备上打开,这样我就可以阻止/禁用返回、主页、多任务的物理按钮。 我已经阅读了一些关于如何做到这一点的文章,但仍然不知道如何在我的应用程序中实现它
我在浏览器中输入以下 URL http://localhost:8081 并以连接错误告终。使用 catalina 脚本启动 tomcat 后,我得到一个空白页面。有人知道为什么会这样吗? 最佳答
我正在尝试在 Eclipse 中设置一个 spring mvc 项目。我创建了一个动态 Web 项目并创建了源和配置文件。当我在由 eclipse 启动的 tomcat 上运行该项目时,我总是遇到 4
我在Tomcat中部署了我的应用程序,应用程序路径是: http://localhost:8080/myapp 但我想限制我的用户看不到 Tomcat 主页,即如果他们输入: http://local
在创建一个 vue nativescript 应用程序并通过以下方式运行之后: tns preview 我得到: *** Terminating app due to uncaught excepti
与其说我是网页设计师,我更像是一个程序员,我正在尝试做一个简单的(我认为)设计,比如 gmail 的主页 https://mail.google.com/intl/fr/mail/help/about
我是一名优秀的程序员,十分优秀!