【问题标题】:How to change the Back Button Text on Xamarin.Forms如何更改 Xamarin.Forms 上的后退按钮文本
【发布时间】:2020-04-03 21:33:36
【问题描述】:

我一直在尝试更改 Xamarin.Forms 中后退按钮的文本,但没有运气。

我已经尝试过这段代码,但没有成功:

NavigationPage.SetBackButtonTitle(this, "");

我正在使用MasterDetailPage

我尝试将代码添加到 XAML cs 文件的构造函数中。

使用的库:PRISM 6.2.0、Xamarin Forms 2.3.1.114

有什么建议或想法吗?

提前致谢

【问题讨论】:

    标签: xamarin xamarin.forms


    【解决方案1】:

    由于the topic:

    此 API 有点不直观的一点是,您正在设置返回按钮的标题,当您要返回此页面时,该按钮会显示。例如,您尝试将标题设置为“主页”。这意味着您应该在表示“主页”页面的页面上调用此方法,而不是在显示“主页”的后退按钮时可见的页面。

    所以,如果你从Page1 导航到Page2,你应该在Page1 的构造函数中设置NavigationPage.SetBackButtonTitle(this, ""),在Page2 上你会看到返回按钮的空标题。

    【讨论】:

    • 还应注意,如果您使用的是 TabbedPages - 您应该将其放在 TabbedPage 构造函数中,而不是子项的 ContentPage 中。
    【解决方案2】:

    您必须将上一页的后退按钮标题设置为string.Empty。默认情况下,它是导航堆栈上上一页的标题,显示为后退按钮文本。

    Android 也不支持此属性。

    【讨论】:

    【解决方案3】:

    您也可以从当前 xaml 页面的代码后面进行操作

    public TodoPage()
    {
        InitializeComponent();
        NavigationPage.SetBackButtonTitle(this, "Back");
    }
    

    注意:必须在您要设置的上一页上完成。

    例如如果您希望页面 B 显示“返回”标题,页面 A 必须有代码。

    【讨论】:

    • @knocte 确保将其设置在上一页而不是您希望它出现的页面上
    【解决方案4】:

    迟来的答案,但也许将来有人会发现这很有用...无论如何,如果您希望从 XAML 中删除后退按钮标题,您可以为任何应该删除标题的 ContentPage 添加 NavigationPage.BackButtonTitle=""或者您可以在您的 App.xaml 文件中定义新的 ContentPage 样式,如下所示:

    <Style x:Key="ContentPageStyle" TargetType="ContentPage">
        <Setter Property="BackgroundColor" Value="White" /><!-- just an example of other things that can be in here -->
        <Setter Property="NavigationPage.BackButtonTitle" Value="" />
    </Style>
    

    但是,我无法将其转换为一种隐式全局样式,无需为每个 ContentPage 指定 Style="{StaticResource ContentPageStyle}" 即可自动应用——我不知道为什么那个不起作用。

    【讨论】:

    • 在样式中使用ApplyToDerivedTypes="true" 使继承自 ContentPage 的页面也得到样式。
    【解决方案5】:

    您可以在 ContentPage 上设置属性NavigationPage.BackButtonTitle

    例如:

    <?xml version="1.0" encoding="utf-8"?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:d="http://xamarin.com/schemas/2014/forms/design" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:T3R" mc:Ignorable="d" Title="Title of Page" NavigationPage.BackButtonTitle="Cancel" x:Class="T3R.MainPage">

    记住以下几点:

    • 我知道这仅适用于 iOS
    • 对于任何给定页面,后退按钮标题由显示它的页面设置。这样,按钮标签可以相对于导航堆栈(其中可能有很多)上它之前的页面而变化。

    【讨论】:

    • NavigationPage.BackButtonTitle="" 老兄,你太棒了!!!!
    【解决方案6】:

    您可以在 XAML 中按如下方式设置后退按钮文本(在 ContentPage.Content 之前):

    <NavigationPage.TitleView>
        <Label Text="{Binding PageTitle}" HorizontalOptions="Center"/>
    </NavigationPage.TitleView>
    

    【讨论】:

      猜你喜欢
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多