Xamarin-NavigationPage.TitleView中的StackLayout不会使用所有空间?

缺口

我的某些应用程序内容页面上都有TitleView,并且我希望包含所有文本的StackLayout填充可用空间。但是,将其Horizo​​ntalOptions设置为Fill或FillAndExpand并不像在ContentPage中正常进行那样工作,而是StackLayout仅与我在其中拥有的Label一样宽。

我的XAML代码:

<NavigationPage.TitleView>
        <StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand" x:Name="TitleBarLayout">
            <Label Text="PageTitle"
                   TextColor="White"
                   FontSize="20"
                   FontAttributes="Bold"
                   HorizontalOptions="Start"
                   x:Name="PageTitle"/>
            <Label Text="Text1:"
                   FontSize="20"
                   TextColor="LightGray"
                   HorizontalOptions="End"/>
            <Label x:Name="Label1"
                   FontSize="20"
                   TextColor="Black"
                   HorizontalOptions="End"/>
            <Label Text="Text2:"
                   FontSize="20"
                   TextColor="LightGray"
                   HorizontalOptions="End"/>
            <Label x:Name="Label2"
                   FontSize="20"
                   TextColor="Black"
                   HorizontalOptions="End"/>
            <Label Text="Text3:"
                   FontSize="20"
                   TextColor="LightGray"
                   HorizontalOptions="End"/>
            <Label x:Name="Label3"
                   FontSize="20"
                   TextColor="Black"
                   HorizontalOptions="End"/>
        </StackLayout>
    </NavigationPage.TitleView>

因此,理想情况下,我希望“ PageTitle”标签位于“后退”箭头的旁边,然后将其他所有内容放在导航栏的另一端-如您所见,我已经HorizontalOptions="Start"为PageTitle和HorizontalOptions="End"其他所有内容设置了。

该代码的结果是这样的: 在此处输入图片说明

期望的结果是这样(在Paint中编辑):

在此处输入图片说明

我也尝试过在C#中获取Page的宽度,并为PageTitle标签设置Margin,如下所示:

double width = App.Current.MainPage.Width / 4;
PageTitle.Margin = new Thickness (0,0,width,0);

但是,由于我的应用程序被设计为可用于纵向或横向的任何设备,因此这会导致文本显示错误,导致显示内容太小。

除非绝对必要,否则请不要提供有关自定义工具的建议

松树

您可以通过HorizontalOptions将第一个Label的更改FillAndExpand来解决此问题。StartAndExpand

<Label Text="PageTitle"
        TextColor="White"
        FontSize="20"
        FontAttributes="Bold"
        HorizontalOptions="StartAndExpand"
        x:Name="PageTitle"/>

这将“强制”其余项目移至末尾。

希望这可以帮助。-

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Xamarin中的MasterDetailPage和NavigationPage组合

Xamarin表单-NavigationPage.TitleView在iOS上不起作用

Xamarin表单NavigationPage.TitleView必须在所有页面上

如何在Xamarin表单NavigationPage中更改backGround颜色

无法使用 Prism.Forms Xamarin 在 NavigationPage 中包装 MasterDetailPage 以显示后退按钮

在Xamarin.Ons中的OnStart期间设置MainPage = NavigationPage在Android中显示空白屏幕

Xamarin.Forms使用PRISM在MasterDetail的Details视图内的NavigationPage的后退堆栈

Xamarin.Forms-Android上不全局支持PushAsync,请使用NavigationPage

Xamarin.Forms NavigationPage和屏幕旋转

Xamarin Forms NavigationPage显示多个后退按钮

Xamarin Forms,在棱镜中设置 BarBackgroundColor NavigationPage

当子页面包装在 NavigationPage 中时,为什么 Xamarin Forms tabbedpage 会引发未处理的异常?

更改Xamarin Forms NavigationPage工具栏的高度

Xamarin Forms 和 Prism,调用 NavigationPage 时出错

C#Xamarin形式:NavigationPage图标未显示

Xamarin Forms Listview ItemSelected NavigationPage两次

iOS 上 NavigationPage 中的 ToolbarItem 文本颜色

NavigationPage作为XAML中TabbedPage的子级

XF + DryIoc:无法从实现类型Xamarin.Forms.NavigationPage中选择单个公共构造函数

在 Xamarin 中导航到 NavigationPage 的倒数第二页?

NavigationPage.Icon,为android xamarin.forms 添加标签图标

NavigationPage包装导致状态栏中的错误

我可以在新 NavigationPage 的构造函数中使用 ContentPage 吗?

如何使用 TabbedPage 从 NavigationPage 全屏导航到普通的 ContentPage?

使用NavigationPage时获取“ iOS上不全局支持PushAsync ...”

Android上不全局支持PushAsync,请使用NavigationPage

使用TabbedPage时,更改所选NavigationPage上的“活动”图标

除非放置在NavigationPage中,否则主详细信息图标不会响应FlowDirection.RightToLeft。

Linux来宾(在VirtualBox中)不会使用动态VDI磁盘的所有空间