原生添加UWP如何添加多个实例?

How to add multiple instances of the native add UWP?

我有一个显示多个视频目录的 UWP 应用程序。它们位于单独的页面中。为此,我创建了一个 NativeAdV2 控件:

public sealed partial class CardAdvert : UserControl
{
    NativeAdsManagerV2 manager = new NativeAdsManagerV2("d25517cb-12d4-4699-8bdc-52040c712cab", "test");
    NativeAdV2 advert;
    public CardAdvert()
    {
        InitializeComponent();
        manager.AdReady += AdReady;
        manager.RequestAd();
    }

    private void AdReady(object sender, NativeAdReadyEventArgs e)
    {
        advert = e.NativeAd;
        Initialize();
        e.NativeAd.RegisterAdContainer(this);    //Exception is here
    }

    public void Initialize()
    {
        title.Text = advert.Title;
        image.Source = new BitmapImage(advert.MainImages.First().Url.ToUri());
        if (advert.AdIcon == null)
            contentGrid.ColumnDefinitions[0].Width = new GridLength(0);
        else
            icon.ProfilePicture = advert.AdIcon.Source;

        if (string.IsNullOrWhiteSpace(advert.SponsoredBy))
            sponsor.Visibility = Visibility.Collapsed;
        else
            sponsor.Text = advert.SponsoredBy;

        if (!string.IsNullOrWhiteSpace(advert.Rating))
            info.Text += $" {advert.Rating}";

        if (string.IsNullOrWhiteSpace(advert.CallToActionText) && string.IsNullOrWhiteSpace(advert.Price))
            desc.Visibility = Visibility.Collapsed;
        else if (!string.IsNullOrWhiteSpace(advert.CallToActionText))
            desc.Text = advert.CallToActionText;
        else
            desc.Text = advert.Price;
    }
} 

但是无论我在哪里创建它(即使是在不同的页面上)第二次或第三次它都会在 e.NativeAd.RegisterAdContainer(this) 上抛出异常:

Unhandled exception at 0x082A1330 (Windows.UI.Xaml.dll) in FoxTube.exe:
0xC000027B: An application-internal exception has occurred (parameters: 0x1E9F4608, 0x00000003)

MSDN 论坛或其他地方以及 NativeAdV2 class 文档

中都没有类似内容

太好了,我想每 10 个视频插入一次此控件。或者至少在每一页上。有什么解决办法吗?

实际上,我不知道为什么 Microsoft 不想修复此问题,但正如他们所说,它适用于早期版本。您只需将目标版本和最低版本降级到 17134 即可。您还可以使用 Windows UI Library 获取最新的 XAML 控件