我正在尝试通过在我的代码中执行此操作来设置页面标题:this.Title = "string";
但它根本不会显示。我想这是为了清晰起见。红色部分是文本的位置。
编辑:好吧首先抱歉缺少信息,但不确定要显示什么,什么不显示。我正在尝试根据我从消息中得到的项目名称更改标题(我不认为消息正在接收,我认为这是因为这不是我唯一的一个'现在正在调查,谢谢你们。)
消息:
MessagingCenter.Subscribe<ZonePage, string>(this, "loginname", (s, arg) => { name = arg; this.Title = name; });
xaml标记:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MobileApp.LoginPage">
<StackLayout BackgroundColor="#15a4fa">
<StackLayout VerticalOptions="CenterAndExpand" Padding="50, 0, 50, 50">
<Image Source="logotext.png" />
</StackLayout>
<StackLayout BackgroundColor="White" VerticalOptions="StartAndExpand" Padding="25, 20, 25, 20">
<Entry x:Name="userNameEntry" TextColor="Black" Placeholder="Username" HorizontalOptions="Fill"/>
<Entry x:Name="passwordEntry" IsEnabled="True" TextColor="Black" IsPassword="True" Placeholder="Password" HorizontalOptions="Fill"/>
<StackLayout Orientation="Horizontal">
<Switch x:Name="Remember" IsToggled="False" HorizontalOptions="Center"/>
<Label Text="Remember me" TextColor="Black" Font="18" HorizontalOptions="Start"/>
</StackLayout>
</StackLayout>
<StackLayout Padding="75, 0, 75, 50" VerticalOptions="Center">
<Picker x:Name="picker" TextColor="White" Title="Select an Identity Source">
<Picker.Items>
<!-- Items added dynamically from xaml.cs -->
</Picker.Items>
</Picker>
</StackLayout>
<StackLayout Padding="0, 0, 0, 0" VerticalOptions="StartAndExpand" HorizontalOptions="Center" Orientation="Horizontal">
<Button Text="Login" BackgroundColor="White" TextColor="Black" VerticalOptions="Start" HorizontalOptions="Center" Clicked="OnLogin"/>
</StackLayout>
</StackLayout>
答案 0 :(得分:2)
在接收邮件的方法中设置断点,以确保获得某些内容。如果是这样,请修改您的代码:
MessagingCenter.Subscribe<ZonePage, string>(this, "loginname", (s, arg) => {
name = arg;
Device.BeginInvokeOnMainThread (() => {
this.Title = name;
});
});
这将更新您的UI线程,在这种情况下可能需要。
答案 1 :(得分:0)
在InitializeComponent之后尝试在App.xaml.cs级别将页面设置为NavigationPage:
InitializeComponent();
MainPage = new NavigationPage(new LoginPage());
答案 2 :(得分:0)
您可能将标题设置为错误的页面。 根据我从您的图像中了解到您正在使用MasterDetail页面。 如果我是正确的,这个MasterDetailPage会将您的LoginPage保存在您尝试更改标题的位置。 但是,不是尝试更改LoginPage的标题,而是尝试更改将LoginPage保存为Detail的MasterDetailPage的标题。