如何更改Xamarin.Forms上的后退按钮文本

aci*_*ido 8 xamarin xamarin.forms

我一直试图在没有运气的情况下更改Xamarin.Forms中后退按钮的文本.

我已经尝试过这段代码而没有运气:

NavigationPage.SetBackButtonTitle(this, "");
Run Code Online (Sandbox Code Playgroud)

我正在使用MasterDetailPage.

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

使用的库:PRISM 6.2.0,Xamarin Forms 2.3.1.114

有什么建议或想法吗?

提前致谢

Yeh*_*kyi 24

由于主题:

关于这个API有点不直观的事情之一就是你正在设置后退按钮的标题,当你回到这个页面时,它会显示出来.例如,您正尝试将标题设置为"Home".这意味着您应该在代表"主页"页面的页面上调用此方法,而不是在显示"主页"的后退按钮时可见的页面.

所以,如果你要导航Page1Page2,你应该NavigationPage.SetBackButtonTitle(this, "")在构造函数中设置,Page1然后Page2你会看到后退按钮的空标题.


Roh*_*ews 7

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

Android也不支持此属性.

  • 对于Android,您必须创建自定义渲染并设置操作栏的属性.http://forums.xamarin.com/discussion/24517/actionbar-home-button-visibility-when-to-set或https://forums.xamarin.com/discussion/23794/how-to-hide-back-按钮换的Android功能于xamarin表单 (2认同)

Cel*_*ane 5

迟来的答案,但也许将来有人会觉得有用。无论如何,如果您希望摆脱XAML的后退按钮标题,则可以添加应删除标题的NavigationPage.BackButtonTitle=""任何内容ContentPage,也可以ContentPageApp.xaml文件中定义新样式像这样:

<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>
Run Code Online (Sandbox Code Playgroud)

但是,我无法将其转换为隐式的全局样式,而无需Style="{StaticResource ContentPageStyle}"为每个样式进行指定即可自动应用该隐式样式ContentPage-我不确定为什么这种样式不起作用。

  • 在样式中使用`ApplyToDerivedTypes =“ true”`可以使从ContentPage继承的页面也具有样式。 (4认同)

LeR*_*Roy 5

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

public TodoPage()
{
    InitializeComponent();
    NavigationPage.SetBackButtonTitle(this, "Back");
}
Run Code Online (Sandbox Code Playgroud)

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

例如,如果您希望页面B显示“后退”标题,则页面A必须具有代码。