将不同的内容视图添加到内容页面(Rg.Popups) - Xamarin Forms

时间:2018-03-16 04:43:18

标签: c# xaml xamarin xamarin.forms

我在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,并且弹出窗口需要呈现该特定内容视图。感谢有人能提出一个巧妙的方法来实现这一点。

1 个答案:

答案 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));
            });
        }
    }