2016-09-26 3 views
1

Ich verwende ad Kontrolle in meiner XAML wie untenblättern Ad Steuerung - Windows Phone UWP

<Page 
x:Class="namespace" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:namespace" 
xmlns:ViewModels="using:namespace.ViewModels" 
xmlns:common="using:namespace.Classes" 
xmlns:stringBind="using:namespace.Classes" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:q42controls="using:Q42.WinRT.Controls" 
xmlns:UI="using:Microsoft.Advertising.WinRT.UI" 
Background="Gray" 
mc:Ignorable="d"> 
<Page.Resources> 
    <ViewModels:ArticleViewModel x:Key="ViewModel" /> 
    <DataTemplate x:Key="headerTest"> 
    </DataTemplate> 
    <DataTemplate x:Key="pivotTemplate"> 
     <StackPanel Margin="-15 0 -15 0"> 
      <Grid> 
       <Image x:Name="PlaceHolderImage" Source="Assets/PlaceHolder.jpg"></Image> 
       <Image q42controls:ImageExtensions.CacheUri="{Binding ImageURL}" Tag="{Binding ImageURL}" Tapped="ImageView"></Image> 
      </Grid> 
      <StackPanel Background="White"> 
       <TextBlock Text="{Binding UpdatedDate}" FontSize="15" HorizontalAlignment="Center" 
          VerticalAlignment="Center" Pivot.SlideInAnimationGroup="GroupTwo" Margin="10 10 0 10" 
          FontFamily="{StaticResource ContentControlThemeFontFamily}" 
          Foreground="#777"></TextBlock> 
       <Border VerticalAlignment="Bottom" Height="1" Background="Black" Opacity="0.1"> 
       </Border> 
       <TextBlock x:Name="HeadLine" Text="{Binding HeadLine}" 
              Margin="10 5 10 -5" TextWrapping="Wrap" 
              FontSize="{Binding HeadlineFontSize}" Foreground="Black" 
              FontFamily="{StaticResource HeadlineCommonFamiy}" 
              Pivot.SlideInAnimationGroup="GroupTwo"/> 
       <TextBlock Text="{Binding Abstract}" TextWrapping="Wrap" FontSize="{Binding AbstractFontSize}" 
           Pivot.SlideInAnimationGroup="GroupTwo" Margin="10 5 10 10" 
           Foreground="#999" 
             FontFamily="{StaticResource AbstractCommonFamily}"/> 
      </StackPanel> 
      <StackPanel x:Name="descriptionSP" Background="White"> 
       <Image Source="Assets/PlaceHolder.jpg" Width="300" Height="250"></Image> 
       <UI:AdControl 
        AutoRefreshIntervalInSeconds="60" 
        ApplicationId="3f83fe91-d6be-434d-a0ae-7351c5a997f1" 
        AdUnitId="10865270" 
        HorizontalAlignment="Center" 
        Height="250" 
        IsAutoRefreshEnabled="True" 
        VerticalAlignment="Top" 
        Margin="5,-240,5,5" 
        Width="300" 
        ErrorOccurred="AdControl_ErrorOccurred"/> 
       <RichTextBlock IsTextSelectionEnabled="False" x:Name="richTextBlock" 
           local:Properties.Html="{Binding ArticleDetail}" TextWrapping="Wrap" 
           FontSize="{Binding FontSize}" 
           Pivot.SlideInAnimationGroup="GroupTwo" Margin="10,10,10,-20" 
             FontFamily="{StaticResource ContentControlThemeFontFamily}"> 
       </RichTextBlock> 
       <Image Source="Assets/PlaceHolder.jpg" Width="300" Height="250"></Image> 
       <UI:AdControl 
        AutoRefreshIntervalInSeconds="60" 
        ApplicationId="3f83fe91-d6be-434d-a0ae-7351c5a997f1" 
        AdUnitId="10865270" 
        HorizontalAlignment="Center" 
        Height="250" 
        IsAutoRefreshEnabled="True" 
        VerticalAlignment="Top"       
        Margin="5,-220,5,5" 
        Width="300" Loaded="AdControl_Loaded"/> 
      </StackPanel> 
     </StackPanel> 
    </DataTemplate> 
</Page.Resources> 
<Page.BottomAppBar> 
    <CommandBar Foreground="Black" Background="White"> 
     <CommandBar.PrimaryCommands> 
      <AppBarButton x:Uid="Share" Click="Share_Click" Label="Share"> 
       <AppBarButton.Icon> 
        <BitmapIcon UriSource="/Assets/Share.png" Height="30" Margin="0,-5,0,0"/> 
       </AppBarButton.Icon> 
      </AppBarButton> 
      <AppBarButton Icon="Favorite" Name="favIcon" Click="Favorite_Click" Label="Favorite" Margin="0,-2,0,0"></AppBarButton> 
     </CommandBar.PrimaryCommands> 
    </CommandBar> 
</Page.BottomAppBar> 
<Grid Background="#f2f2f2" x:Name="grid"> 
    <Grid x:Name="LoadingGrid" Visibility="Visible"> 
     <ProgressRing x:Name="progressRing" IsActive="True" Foreground="#d03438" HorizontalAlignment="Center" Width="60" 
         Height="50" VerticalAlignment="Center" Margin="0 20 0 0"></ProgressRing> 
    </Grid> 
    <Grid x:Name="mainGrid"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="40"></RowDefinition> 
      <RowDefinition Height="*"></RowDefinition> 
     </Grid.RowDefinitions> 
     <Image x:Name="logoImage" Grid.Row="0" Source="Assets/18600.png" HorizontalAlignment="Center" Margin="0,5,0,0"></Image> 
     <ScrollViewer x:Name="swipeBetweenPages" Grid.Row="1" Visibility="Collapsed"> 
      <Pivot DataContext="{StaticResource ViewModel}" x:Name="pivot" Margin="0,-45,0,0" 
          HeaderTemplate="{StaticResource headerTest}" 
        ItemTemplate="{StaticResource pivotTemplate}" ItemsSource="{Binding Articles}" SelectionChanged="pivot_SelectionChanged"> 
      </Pivot> 
     </ScrollViewer> 
    </Grid> 
    <Grid Visibility="Collapsed" VerticalAlignment="Center" HorizontalAlignment="Center" Background="Black" Name="popUp"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="40"></RowDefinition> 
      <RowDefinition Height="30"></RowDefinition> 
      <RowDefinition Height="*"></RowDefinition> 
     </Grid.RowDefinitions> 

     <Image Source="/Assets/Close_White.png" HorizontalAlignment="Right" Grid.Row="1" Tapped="CloseImage"></Image> 
     <ScrollViewer x:Name="scroll" ZoomMode="Enabled" Grid.Row="2"> 
      <Image x:Name="popUpImage" VerticalAlignment="Center" Margin="0,-50,0,0"></Image> 
     </ScrollViewer> 
    </Grid> 
</Grid> 

Durch die oben XAML Stück Code verwendet wird, kann ich Anzeige richtig machen, aber ich kann nicht scrollen Sie die Seite, wenn ich über das Anzeigensteuerelement blättern. Bitte jemanden, der das Problem löst. Jede Hilfe zu diesem Thema wäre sehr hilfreich sein, um das Problem zu lösen

Erwartete Ausgabe

Image For Clarification

Vielen Dank im Voraus

+0

Sie sollten die AdControl so sehen, als wäre es ein iframe auf einer Webseite. Scrollen innerhalb der AdControl ist nicht Teil Ihrer Seite. – Bart

+0

@Bart Vielen Dank für die Antwort. Ich benutze keine Webseite. Ich verwende ein Anzeigensteuerelement in Windows Phone. Ich habe die Anzeigensteuerung im Stack-Panel verwendet. – Anbarasi

+0

Ich habe eine 'AdControl' in ein' StackPanel' gesetzt, das in einen 'ScrollViewer' eingeschlossen wurde, aber es funktioniert wie erwartet und ich kann normalerweise scrollen, auch wenn die Maus das Steuerelement bewegt. Könnten Sie einige spezielle Informationen darüber, wann das passiert oder mehr XAML? –

Antwort

0

Sie müssen die ScrollViewer innerhalb der PivotItem ‚s DataTemplate setzen.

Derzeit die ScrollViewer Wraps die ganze Pivot, aber der Pivot selbst behandelt das Bildlaufereignis, was bedeutet, dass die ScrollViewer es nicht empfängt. Sie können dies bestätigen, wenn Sie die Bildlaufleiste mit der Maus bewegen und blättern - in diesem Fall wird es funktionieren, weil die Maus nicht mehr innerhalb der Pivot selbst ist.

Die Lösung würde wie folgt aussehen:

<DataTemplate x:Key="pivotTemplate"> 
    <ScrollViewer> 
     <StackPanel Margin="-15 0 -15 0"> 
      ... 
     </StackPanel> 
    </ScrollViewer> 
</DataTemplate> 
+0

Danke für die Antwort, aber es funktioniert nicht – Anbarasi

+0

Und hast du den ursprünglichen ScrollViewer entfernt, der sich um das Pivot selbst befindet? Die mit x: Name = "swipeBetweenPages" –

+0

ja ich entfernte Scroll-Viewer mit swipeBetweenPages – Anbarasi

0

Durch das oben XAML Stück Code, ich Anzeige richtig machen kann, aber ich kann die Seite scrollen, wenn ich über die Anzeige Steuer blättern.

Sie benötigen die Höhe Ihres ScrollViewer explizit zu setzen:

<Grid x:Name="mainGrid"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="40"></RowDefinition> 
      <RowDefinition Height="*"></RowDefinition> 
     </Grid.RowDefinitions> 
     <Image x:Name="logoImage" Grid.Row="0" Source="Assets/18600.png" HorizontalAlignment="Center" Margin="0,5,0,0"></Image> 
     <ScrollViewer x:Name="swipeBetweenPages" Grid.Row="1" Visibility="Visible" Height="300">//here I set the height of ScrollViewer to 300 
      <Pivot DataContext="{StaticResource ViewModel}" x:Name="pivot" Margin="0,-45,0,0" 
         HeaderTemplate="{StaticResource headerTest}" 
       ItemTemplate="{StaticResource pivotTemplate}" ItemsSource="{Binding Articles}" SelectionChanged="pivot_SelectionChanged"> 
      </Pivot> 
     </ScrollViewer> 
</Grid> 

Ich habe die Höhe des Scroll bis 300, und wenn die Höhe des Inhalt ist größer als 300 Scroll wird richtig dargestellt.

Update: Dies ist die komplette Demo: AdControlSample

Um die Pivot-Header zeigen müssen Sie den Rand von Pivot Control auf Margin="0,0,0,0" und auch müssen Sie Ihre definierten Header-Template headerTest füllen:

fixieren margin:

<Grid x:Name="mainGrid"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="40"></RowDefinition> 
      <RowDefinition Height="*"></RowDefinition> 
     </Grid.RowDefinitions> 
     <Image x:Name="logoImage" Grid.Row="0" Source="Assets/18600.png" HorizontalAlignment="Center" Margin="0,5,0,0"></Image> 
     <ScrollViewer x:Name="swipeBetweenPages" Grid.Row="1" Visibility="Visible"> 
      <Pivot x:Name="pivot" Margin="0,0,0,0" 
         HeaderTemplate="{StaticResource headerTest}" 
       ItemTemplate="{StaticResource pivotTemplate}" SelectionChanged="pivot_SelectionChanged"> 
      </Pivot> 
     </ScrollViewer> 
</Grid> 

Und hier ist t er ergebnis: enter image description here

+0

benannt Vielen Dank für Ihre Antwort. Es funktioniert nicht – Anbarasi

+0

Ich veröffentlichte die komplette Demo, die ich mit Ihren Xaml-Codes und dem Ergebnis ausprobiert habe. Bitte haben Sie einen Scheck. –

+0

Vielen Dank für den Beispielcode. Aber für meine Anforderung möchte ich keinen Scroller, ich sollte über die Anzeige streichen, wie wir die Seite wischen – Anbarasi