提问人:Livio 提问时间:1/25/2023 更新时间:1/25/2023 访问量:426
浮出控件页无响应
Flyout Page not responding
问:
我开始通过在线视频了解 .Net MAUI。 我正在尝试自定义一个包含 3 个按钮的页面,其中 1 个用于计数器,1 个用于第二页,1 个用于浮出页面。 计数器和第二页正常,浮出控件页面不显示,但强制应用退出。 调用浮出控件页面的按钮的代码是这样的,位于 MainPage 中.xml.cs:
private void FlyClicked(object sender, EventArgs e)
{
Navigation.PushAsync(new Flyout1());
}
谁能解释一下原因? 非常感谢
答:
1赞
Alexandar May - MSFT
1/25/2023
#1
根据你的描述,应为 FlyoutPage。您可以参考下面的代码来了解如何创建 .我测试它,它可以显示它。Flyout1
FlyoutPage
浮出控件 1:
XAML:
<?xml version="1.0" encoding="utf-8" ?>
<FlyoutPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiAppDualScreen.Flyout1"
xmlns:local="clr-namespace:MauiAppDualScreen"
>
<FlyoutPage.Flyout>
<local:FlyoutMenuPage x:Name="flyoutPage" />
</FlyoutPage.Flyout>
<FlyoutPage.Detail>
<NavigationPage>
<x:Arguments>
<local:MainPage />
</x:Arguments>
</NavigationPage>
</FlyoutPage.Detail>
</FlyoutPage>
代码隐藏:
public partial class Flyout1 : FlyoutPage
{
public Flyout1()
{
InitializeComponent();
}
}
以下示例显示了对象的定义,其类型为:FlyoutMenuPage
ContentPage
XAML:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiAppDualScreen.FlyoutMenuPage"
xmlns:local="clr-namespace:MauiAppDualScreen"
Title="FlyoutMenuPage">
<CollectionView x:Name="collectionView"
x:FieldModifier="public"
SelectionMode="Single">
<CollectionView.ItemsSource>
<x:Array Type="{x:Type local:FlyoutPageItem}">
<local:FlyoutPageItem Title="Contacts"
IconSource="dotnet_bot.png"
TargetType="{x:Type local:MainPage}" />
<local:FlyoutPageItem Title="TodoList"
IconSource="dotnet_bot.png"
TargetType="{x:Type local:MainPage}" />
<local:FlyoutPageItem Title="Reminders"
IconSource="dotnet_bot.png"
TargetType="{x:Type local:MainPage}" />
</x:Array>
</CollectionView.ItemsSource>
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Padding="5,10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Source="{Binding IconSource}" />
<Label Grid.Column="1"
Margin="20,0"
Text="{Binding Title}"
FontSize="20"
FontAttributes="Bold"
VerticalOptions="Center" />
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</ContentPage>
代码隐藏:
public partial class FlyoutMenuPage : ContentPage
{
public FlyoutMenuPage()
{
InitializeComponent();
}
}
浮出控件页由一个填充数据的页面组成,该页面通过将其属性设置为对象数组来填充数据。下面的示例演示该类的定义:CollectionView
ItemsSource
FlyoutPageItem
FlyoutPageItem
public class FlyoutPageItem
{
public string Title { get; set; }
public string IconSource { get; set; }
public Type TargetType { get; set; }
}
评论
0赞
Livio
2/15/2023
对不起,我现在才注意到你的问题。是的,您的代码有效,非常感谢您的帮助!
0赞
Livio
2/15/2023
对不起,我是 Stackoverflow 的新手,所以我不知道如何接受......你能解释一下吗?谢谢!
评论
Flyout1
try .. catch (Exception ex)
catch