18

I'm using UniformGrid and it's making the items display horizontally. Is there a way to make it display vertically?

<ListView.ItemsPanel>
    <ItemsPanelTemplate>
        <UniformGrid Columns="3" />
    </ItemsPanelTemplate>
</ListView.ItemsPanel>

Any help would be greatly appreciated.

Anatoliy Nikolaev
  • 22,370
  • 15
  • 69
  • 68
Calvin
  • 631
  • 5
  • 17
  • 38

3 Answers3

20

The WPF UniformGrid layout is horizontal only, e.g.:

1 2 3
4 5 6
7 8 9

Perhaps you could use a WrapPanel instead and just set the ItemHeight and ItemWidth to your desired grid size and set the Orientation to Orientation.Vertical.

Or you could create a derived UniformGrid to handle Orientation, there is a good example on MSDN.

This one will display:

1 4 7
2 5 8
3 6 9

Is this what you mean?

Danny Beckett
  • 20,529
  • 24
  • 107
  • 134
sa_ddam213
  • 42,848
  • 7
  • 101
  • 110
  • The first source code in the link working fine which do what you want, the updated source code doesn't, use the first one. – user1623454 Nov 27 '18 at 10:22
8

I'm a bit late to the party - but for anyone else searching for a solution, the following works.

<UniformGrid Columns="1" />
Ralt
  • 2,084
  • 1
  • 26
  • 38
0

I'm a bit latER to the party, but for posterity's sake:

I'm just starting out with xaml and came across this problem today. For simplicity's sake, I ended up wrapping single-column UniformGrids in a multi-column, single-row UniformGrid:

<UniformGrid Columns="3">
    <UniformGrid Columns="1">
        <!--multiple child elements-->
    </UniformGrid>
    <UniformGrid Columns="1">
        <!--multiple child elements-->
    </UniformGrid>
    <UniformGrid Columns="1">
        <!--multiple child elements-->
    </UniformGrid>
</UniformGrid>
Alder
  • 1
  • 1