我正在构建一个MAUI应用程序,主页面存储在一个名为MainPage.xaml的文件中。我还使用CommunityToolkit包创建了一个弹出窗口。我想知道是否有一种方法可以在单击按钮时将此PopUpPage包含在我的MainPage中。PopupPage.xaml看起来如下所示:
<toolkit:Popup xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Myproject.PopupPage"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
>
<VerticalStackLayout>
<Label
Text="Welcome to .NET MAUI!"
VerticalOptions="Center"
HorizontalOptions="Center" />
</VerticalStackLayout>
</toolkit:Popup>
我尝试了这个xaml代码,但它没有编译
<toolkit:Popup x:Name="MyPopup" IsVisible="{Binding IsPickerVisible}">
<local:PopupPage />
</toolkit:Popup>
1条答案
按热度按时间zzzyeukh1#
肯定有一种方法可以做到这一点!但是在你的代码中有些东西看起来不正确,阻止了它的工作。让我们后退一步,看看你试图做什么。
在
PopupPage
中,你定义了一个toolkit:Popup
,所以一个完整的弹出窗口,这是在你的应用程序中实际显示弹出窗口所需要的。但是,在第二个代码段中,您现在尝试将
PopupPage
Package 在另一个弹出窗口中,这是不支持的。我不知道您要做什么的所有细节,但假设您希望在下面的两个位置重用此部分:
您要做的是只将这一部分放在一个单独的XAML文件中。假设我们将其命名为
PopupContent.xaml
。作为模板,您可能希望选择ContentView (XAML)
,但只要它是XAML文件,这并不重要。请确保内容如下所示:不要忘记更新代码隐藏中的基类(专业提示:您甚至可以完全删除继承,因为它已经从XAML中推断出来了)。
现在从您的问题更新XAML代码段,如下所示:
注意我是如何将
xmlns:local
添加到根目录中的,确保它反映了应用的名称空间,然后如果愿意,将<local:PopupContent />
作为组件添加。现在对第二个XAML代码段执行相同的操作,您可以在两者之间共享它!