C# 页面标题不显示,为什么不显示?
我试图通过在代码中执行以下操作来设置页面标题:C# 页面标题不显示,为什么不显示?,c#,xaml,xamarin.forms,C#,Xaml,Xamarin.forms,我试图通过在代码中执行以下操作来设置页面标题:this.title=“string”但它根本不会显示。我想这张图片是为了清晰。红色部分是文本应该出现的地方 编辑:好的,首先,很抱歉缺少信息,但不确定要显示什么和不显示什么。我正在尝试根据我从邮件中收到的项目名称更改标题(我不认为收到了邮件,我认为是因为这不是我使用的唯一邮件。现在查看一下,谢谢大家) 信息: MessagingCenter.Subscribe(this,“loginname”,(s,arg)=>{name=arg;this.Ti
this.title=“string”代码>但它根本不会显示。我想这张图片是为了清晰。红色部分是文本应该出现的地方
编辑:好的,首先,很抱歉缺少信息,但不确定要显示什么和不显示什么。我正在尝试根据我从邮件中收到的项目名称更改标题(我不认为收到了邮件,我认为是因为这不是我使用的唯一邮件。现在查看一下,谢谢大家)
信息:
MessagingCenter.Subscribe(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>
在接收消息的方法中设置一个断点,以确保获得某些信息。如果是,请按如下方式修改代码:
MessagingCenter.Subscribe<ZonePage, string>(this, "loginname", (s, arg) => {
name = arg;
Device.BeginInvokeOnMainThread (() => {
this.Title = name;
});
});
MessagingCenter.Subscribe(这个“loginname”,(s,arg)=>{
name=arg;
Device.beginInvokeMainThread(()=>{
this.Title=名称;
});
});
这将更新您的UI线程,在这种情况下可能需要此线程。在初始化组件后,尝试将您的页面设置为App.xaml.cs级别的NavigationPage:
InitializeComponent();
MainPage = new NavigationPage(new LoginPage());
您可能将标题设置为错误的页面。
根据我从你的图片中了解到的情况,你正在使用MasterDetail页面。
如果我是正确的,这个MasterDetailPage会保存您的登录页面,您可以在其中尝试更改标题。
但是不要试图更改登录页面的标题,而是尝试更改将登录页面作为详细信息保存的MasterDetailPage的标题 你必须发布更多的代码,而不仅仅是this.Title=“string”
..@maccettura这就是我所做的尝试,这里的整行代码都是MessagingCenter.Subscribe(这个,“loginname”,(s,arg)=>{name=arg;这个.Title=name;})代码>发布你的xaml标记你订阅了一些你没有在问题中写的东西。请发布您的发布/订阅代码。您确定消息已收到,并且参数设置正确吗?如果试图在页面已经显示之后设置标题,则可能需要在UI线程上执行