2016-05-12 4 views
0

Ich versuche, eine zweispaltige Listenansicht mit gestreckter Artikelbreite und gestreckter Artikelhöhe in UWP (nur XAML) zu erstellen.Artikel in zwei Spalten strecken Listenansicht

<ListView HorizontalAlignment="Stretch"> 
    <ListView.ItemsPanel> 
     <ItemsPanelTemplate> 
      <VariableSizedWrapGrid MaximumRowsOrColumns="2" HorizontalChildrenAlignment="Stretch" HorizontalAlignment="Stretch" /> 
     </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
    <ListViewItem Background="Black" /> 
    <ListViewItem Background="Yellow" /> 
    <ListViewItem Background="Blue"/> 
</ListView> 

Leider habe ich das Ergebnis nicht noch, würde ich gerne haben:

Current result

Wie es sollte wie folgt aussehen:

How it should look like

würde ich erwarte, dass es etwas wie ItemWidth = "Stretch" geben würde und dann die gleiche Breite wie die Höhe, aber es ist nicht vorhanden.

Jede Hilfe würde sehr geschätzt werden.

Danke.

+1

Vielleicht * * Gridview wird hier besser sein? Vielleicht [das hilft] (http://stackoverflow.com/a/31299246/2681948) oder [dieses] (http://stackoverflow.com/q/33589510/2681948). – Romasz

+0

Hallo Romasz, danke für deine Antwort. Ich habe diese Beispiele schon gesehen. Leider funktionieren sie nicht für mich, weil das erste Beispiel die Breite und Höhe explizit festlegt und die zweite Lösung mit Hilfe von Code dahinter steht, den ich zu vermeiden versuche (es sei denn, es gibt keine andere Lösung). Natürlich spielt Listenansicht oder Gridview keine Rolle, also hast du recht, dass ich mich für eine Gridview für die bessere Lösung entscheiden muss. – user1011394

+1

Haben Sie auch [diese Frage] (http://stackoverflow.com/q/23144519/2681948) betrachtet - scheint ein paar Lösungen zu haben. – Romasz

Antwort

2

Um eine zweispaltige ListView zu erstellen, empfehle ich Ihnen, die UniformGrid-panel, die von GitHub mit MIT-Lizenz verfügbar ist, zu überprüfen.

Nachdem Sie die UniformGrid.cs in Ihr Projekt kopiert haben, sollten Sie ziemlich gut das Layout erhalten, das Sie brauchen.

XAML:

<ListView HorizontalAlignment="Stretch"> 
     <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <ug:UniformGrid Columns="2" /> 
      </ItemsPanelTemplate> 
     </ListView.ItemsPanel> 
     <ListViewItem Background="Black" /> 
     <ListViewItem Background="Yellow" /> 
     <ListViewItem Background="Blue"/> 
    </ListView> 

Ergebnis:

UWP UniformGrid