2017-01-09 4 views
1

ich eine VariableSizedWrapGrid haben, mit den Tasten als Elemente:Horizontal-Center Artikel innerhalb VariableSizedWrapGrid

<Page.Resources> 
     <DataTemplate x:Key="LinkTemplate" x:DataType="local:LinkWeb"> 
      <Button Width="100" Height="100" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="15,15,15,15" Click="Button_Click" > 
       <Button.Content>     
        <StackPanel> 
         <Image Source="{Binding ImageLink}" Margin="8,8,8,8" HorizontalAlignment="Center" Height="{Binding HeightImage}" Width="{Binding WidthImage}"/>       
         <TextBlock Text="{Binding Text}" TextWrapping="WrapWholeWords" /> 
        </StackPanel> 
       </Button.Content>    
      </Button> 
     </DataTemplate> 
    </Page.Resources> 

... 

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" Grid.Row="1"> 
      <ItemsControl x:Name="imageContent" ItemsSource="{Binding Enlaces}" ItemTemplate="{StaticResource LinkTemplate}" > 
       <ItemsControl.ItemsPanel> 
        <ItemsPanelTemplate> 
         <VariableSizedWrapGrid Orientation="Horizontal" ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalChildrenAlignment="Stretch" MaximumRowsOrColumns="2"/> 
        </ItemsPanelTemplate> 
       </ItemsControl.ItemsPanel> 
      </ItemsControl> 
     </ScrollViewer> 

Die VariableSizedWrapGrid zeigt zwei Elemente pro Zeile, aber die Elemente erscheint nach links ausgerichtet sind, wie Sie sehen können:

enter image description here

ich die VariableSizedWrapGrid müssen Sie die Elemente in seinem Inhalt zentriert, wie folgt aus:

enter image description here

Irgendeine Idee darüber, wie ich das erreichen kann?

EDIT

Ich habe die Scroll versucht Zentrum, und, ja, Einzelteile „sind ein wenig mehr zentriert“, weil VariableSizedWrapGrid innerhalb Scroll zentriert ist, aber im Inneren VariableSizedWrapGrid Elemente nach links schweben, so Artikel zentriert sind nicht, wie Sie in diesem Bild sehen können:

enter image description here

+0

Warum nicht einfach den Scroll Zentrum oder die Items in ihm? –

+0

Ich habe versucht, den ScrollViewer zu zentrieren, und, Ja, Elemente sind "etwas zentrierter", da VariableSizedWrapGrid in ScrollViewer zentriert ist, aber innerhalb von VariableSizedWrapGrid Elemente nach links schweben, also nicht zentriert sind. Ich werde die Frage aktualisieren, um das zu zeigen. Danke – CarlosTI

+0

@CarlosTI Haben Sie Ihre Frage durch meine Lösung gelöst? Wenn Sie andere Bedenken in Bezug auf dieses Problem haben, wenden Sie sich bitte an mich. –

Antwort

2

Sie die HorizontalChildrenAlignment Eigenschaftswert von VariableSizedWrapGrid als Center einstellen könnte. Es sollte funktionieren.

<ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <VariableSizedWrapGrid Orientation="Horizontal" ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalChildrenAlignment="Center" MaximumRowsOrColumns="2" /> 
     </ItemsPanelTemplate> 
</ItemsControl.ItemsPanel> 

enter image description here

+0

Ja, thx! Ich habe ein anderes seltsames Verhalten getestet, wenn ich mehr Elemente als die Konfiguration, die MaximumRowsOrColumns erlaubt (in diesem Fall "2", weil ich 2 Spalten und eine variable Anzahl von Zeilen probiert), setze, wird das Variablengrid verrückt und die Elemente werden nach links verschoben. Wenn Sie in Ihrem Beispiel weitere Elemente hinzufügen, werden die Elemente zentriert? – CarlosTI

Verwandte Themen