私は同じ問題に直面しています。 残念ながら、広告は30秒ごとに読み込まれ、30秒後に1回更新することはできません。 これは、Refresh()メソッドの呼び出しが失敗するためです。 私はあなたに役立つことを望む回避策を使用しました。 私は広告の同じサイズ(および位置)のStackPanelで広告を「カバー」しました。このパネルは、広告のサイズを変更する必要があるときに表示されています。 広告のリフレッシュ時に(コールバックAdRefreshedによって傍受することができます)、私はカバーパネルを隠しました。あなたが広告のサイズを変更する必要があるの背後にあるコードでは、
<StackPanel x:Name="AdsCover" Width="300" Height="50" Visibility="Visible"
Grid.Column="0" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Bottom" Canvas.ZIndex="12" Background="WhiteSmoke">
<Border x:Name="AdsBorder" BorderBrush="{x:Null}" Height="50">
<TextBlock x:Name="AdsLoading" Text="Ads Loading..." HorizontalAlignment="Center" FontStyle="Italic" FontFamily="Calibri" FontSize="24"
TextAlignment="Center" VerticalAlignment="Center"/>
</Border>
</StackPanel>
<UI:AdControl x:Name="adsMS"
ApplicationId="3f83fe91-d6be-434d-a0ae-7351c5a997f1"
AdUnitId="10865270"
HorizontalAlignment="Left"
Height="50"
VerticalAlignment="Bottom"
Width="300"
Grid.Column="0" Grid.ColumnSpan="3"
Canvas.ZIndex="10"
ErrorOccurred="OnAdErrorOccurred"
AdRefreshed="OnAdRefreshed"/>
、あなたはこれを行うことができます。
...
// Change the size of the Ad. adsW and adsH are the new size
adsMS->SetValue(WidthProperty, 1.0*adsW);
adsMS->SetValue(HeightProperty, 1.0*adsH);
// Cover panel with the same size
AdsCover->SetValue(WidthProperty, 1.0*adsW);
AdsCover->SetValue(HeightProperty, 1.0*adsH);
AdsBorder->SetValue(HeightProperty, 1.0*adsH);
// If the size are changed, I hide the Ad with the panel.
// In this way, I can avoid to see the deformed Ad.
// m_previousAdsWidth and m_previousAdsHeight are the previous size
// of the Ad.
if ((m_previousAdsWidth != adsW || m_previousAdsHeight != adsH)
&& m_previousAdsWidth > 0 && m_previousAdsHeight > 0)
{
AdsCover->SetValue(VisibilityProperty, Windows::UI::Xaml::Visibility::Visible);
}
m_previousAdsWidth = adsW;
m_previousAdsHeight = adsH;
...
をOnAdRefreshedコールバックでは()あなたはパネルを非表示にすることができます
// Called when the Ad is refreshed.
void DirectXPage::OnAdRefreshed(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
// If the Ad is hidden by the cover panel, I will make it visible again.
if (AdsCover->Visibility == Windows::UI::Xaml::Visibility::Visible)
AdsCover->SetValue(VisibilityProperty, Windows::UI::Xaml::Visibility::Collapsed);
}
これは私をいくらか助けました、ありがとう! –