Xamarin.forms 如何降低xamarin表单中导航栏的高度

Xamarin.forms 如何降低xamarin表单中导航栏的高度,xamarin.forms,Xamarin.forms,我已经使用MasterDetail页面作为我的应用程序的主页。这里的TabbedPage是我的详细信息页面,它包含了作为TabbedPage子级的各种ContentPage。我已将详细信息设置为Detail=NavigationPage(tabbedpage);它对IOS非常有效,但在android中,它在导航栏标题和选项卡名称中占用了更多的空间,我不能忽略这两个,我的问题是如何降低导航页面标题栏的高度。 请检查所附图片以供参考 例如,您需要设置特定于平台的填充 <OnPlatform x

我已经使用MasterDetail页面作为我的应用程序的主页。这里的TabbedPage是我的详细信息页面,它包含了作为TabbedPage子级的各种ContentPage。我已将详细信息设置为Detail=NavigationPage(tabbedpage);它对IOS非常有效,但在android中,它在导航栏标题和选项卡名称中占用了更多的空间,我不能忽略这两个,我的问题是如何降低导航页面标题栏的高度。 请检查所附图片以供参考


例如,您需要设置特定于平台的填充

<OnPlatform x:TypeArguments="FontAttributes" x:Key="fontAttributes">
        <OnPlatform.iOS>Bold</OnPlatform.iOS>
        <OnPlatform.Android>Italic</OnPlatform.Android>
</OnPlatform>

大胆的
斜体

例如,您需要设置特定于平台的填充

<OnPlatform x:TypeArguments="FontAttributes" x:Key="fontAttributes">
        <OnPlatform.iOS>Bold</OnPlatform.iOS>
        <OnPlatform.Android>Italic</OnPlatform.Android>
</OnPlatform>

大胆的
斜体

您需要使用自定义呈现程序实现CustomNavigationPage。请参阅—


公共分部类CustomNavigationPage:NavigationPage
{
公共CustomNavigationPage():base()
{
初始化组件();
}
公共CustomNavigationPage(页面根):基本(根)
{
初始化组件();
}
public bool IgnoreLayoutChange{get;set;}=false;
IzealLocated上的受保护覆盖空心(双倍宽度,双倍高度)
{
如果(!IgnoreLayoutChange)
底座。尺寸定位(宽度、高度);
}
}
公共类CustomNavigationPageRenderer:NavigationPageRenderer
{
公共CustomNavigationPageRenderer(上下文):基础(上下文)
{
}
IPageController PageController=>元素作为IPageController;
CustomNavigationPage CustomNavigationPage=>元素作为CustomNavigationPage;
受保护覆盖仅限无效布局(布尔值已更改、整数l、整数t、整数r、整数b)
{
CustomNavigationPage.IgnoreLayoutChange=true;
仅基础布局(已更改,l、t、r、b);
CustomNavigationPage.IgnoreLayoutChange=false;
int containerHeight=b-t;
PageController.ContainerArea=新矩形(0,0,Context.FromPixels(r-l),Context.FromPixels(containerHeight));
对于(变量i=0;i
您需要使用自定义呈现程序实现CustomNavigationPage。请参阅—


公共分部类CustomNavigationPage:NavigationPage
{
公共CustomNavigationPage():base()
{
初始化组件();
}
公共CustomNavigationPage(页面根):基本(根)
{
初始化组件();
}
public bool IgnoreLayoutChange{get;set;}=false;
IzealLocated上的受保护覆盖空心(双倍宽度,双倍高度)
{
如果(!IgnoreLayoutChange)
底座。尺寸定位(宽度、高度);
}
}
公共类CustomNavigationPageRenderer:NavigationPageRenderer
{
公共CustomNavigationPageRenderer(上下文):基础(上下文)
{
}
IPageController PageController=>元素作为IPageController;
CustomNavigationPage CustomNavigationPage=>元素作为CustomNavigationPage;
受保护覆盖仅限无效布局(布尔值已更改、整数l、整数t、整数r、整数b)
{
CustomNavigationPage.IgnoreLayoutChange=true;
仅基础布局(已更改,l、t、r、b);
CustomNavigationPage.IgnoreLayoutChange=false;
int containerHeight=b-t;
PageController.ContainerArea=新矩形(0,0,Context.FromPixels(r-l),Context.FromPixels(containerHeight));
对于(变量i=0;i