Xamarin UWP + Android ContentPage 导航 PushAsync
Posted
技术标签:
【中文标题】Xamarin UWP + Android ContentPage 导航 PushAsync【英文标题】:Xamarin UWP + Android ContentPage Navigation PushAsync 【发布时间】:2021-10-07 22:41:52 【问题描述】:我正在将 UWP 应用程序转换为 Xamarin,以便在 android 和 Windows 设备上使用它。 我以前从未使用过 Xamarin,我认为我犯了一个初学者错误。
在我的主页上一切正常:
但是当我点击“选项”按钮时,它没有加载新页面,除了窗口上部的灰色横幅:
要从一个页面导航到另一个页面,我按照以下说明进行操作:Microsoft doc navigation
我的代码可以在 MainPage.xaml.cs 中更改页面:
async void ButtonOptions_Click(object sender, EventArgs args)
try
button_options.Source = "Assets/Option_Icon_1.png";
Application.Current.MainPage = new NavigationPage(new MainPage());
var OptionsView = new OptionsView();
await Device.InvokeOnMainThreadAsync(() => Navigation.PushAsync(OptionsView, true));
//this.Frame.Navigate(typeof(StorageView1));
catch (Exception ex) InterpretException("MainPage.ButtonStorage_Click()", ex);
还有我的 OptionsView.xaml:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Stock_Manager_Xamarin.OptionsView"
Title="Second Page">
<ContentPage.Content>
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
<StackLayout Orientation="Horizontal">
<Label Text="Name:" HorizontalOptions="FillAndExpand" />
<Label Text="Binding Name" FontSize="Medium" FontAttributes="Bold" />
</StackLayout>
<Button x:Name="navigateButton" Text="Previous Page"/>
</StackLayout>
</ContentPage.Content>
我尝试了不同版本的 xaml 代码而没有任何更改,但我找不到工作示例。 有人可以解释我在哪里做错了吗?
【问题讨论】:
如果MainPage
已经是当前显示的内容,你为什么还要使用Application.Current.MainPage = new NavigationPage(new MainPage());
?
我在另一个主题中读过它......但这显然是一个错误。 ColeX - MSFT 提供了解决方案。
【参考方案1】:
将当前页面包裹在导航栈中App.cs
,并设置为MainPage
,这样我们就可以进行导航操作了。
public App()
InitializeComponent();
MainPage = new NavigationPage(new MainPage());
正如Jason
所说,MainPage
不需要重新设置,直接导航,修改代码如下。
void ButtonOptions_Click(object sender, EventArgs args)
try
button_options.Source = "Assets/Option_Icon_1.png";
var OptionsView = new OptionsView();
Navigation.PushAsync(OptionsView, true);
catch (Exception ex) InterpretException("MainPage.ButtonStorage_Click()", ex);
【讨论】:
以上是关于Xamarin UWP + Android ContentPage 导航 PushAsync的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Forms中的Android,IOS和UWP版本
Stacklayout 上所有 3 个平台(Android、iOS、UWP)中的 Xamarin 长按事件
Xamarin:用于 Android 和 Windows UWP 的 Xamarin 表单中的分组列表的垂直字母索引(跳转列表)