我在Xamarin Forms中使用Rg.Popups创建了一个Popup页面。应用程序中的弹出窗口有不同的变体,我希望在其中使用具有不同内容的相同弹出窗口。
<?xml version="1.0" encoding="UTF-8"?>
<pages:PopupPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="CustomKeyboard.Controls.CustomPopup"
xmlns:local="clr-namespace:CustomKeyboard.Controls;assembly=CustomKeyboard"
xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup">
<StackLayout
VerticalOptions="Center"
HorizontalOptions="Center"
BackgroundColor = "#00000000"
Padding="20, 0, 20, 0">
<Frame CornerRadius = "8" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand">
<local:Content1 />
</Frame>
</StackLayout>
是内容视图及其静态。我需要将View视为动态内容。
因此,当我导航到CustomPopup时,我应该能够指定我需要使用哪个ContentView,并且弹出窗口需要呈现该特定内容视图。感谢有人能提出一个巧妙的方法来实现这一点。
答案 0 :(得分:1)
我最终得到了类似的东西,它对我很有用。
我使用c#(no xaml)创建了控件。但你也可以这样做
public class PDTPopup : Rg.Plugins.Popup.Pages.PopupPage
{
public PDTPopup(ContentView view)
{
Frame frame = new Frame
{
CornerRadius = 8,
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.CenterAndExpand,
Content = view
};
this.Content = new Xamarin.Forms.StackLayout()
{
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
BackgroundColor = Color.FromHex("#00000000"),
Padding = new Thickness(20, 0, 20, 0),
Children =
{
frame
}
};
}
}
然后,我需要调用弹出窗口。我做了
public Command PopupCommand
{
get
{
return new Command(async () => {
Content1Page view = new Content1Page();
await PopupNavigation.Instance.PushAsync(new CustomPopup(view));
});
}
}