Entwickler-Ecke

WPF / Silverlight - Win8 GridView ordnet Elemente nicht richtig.


Namenlosnameless - Do 11.07.13 02:15
Titel: Win8 GridView ordnet Elemente nicht richtig.
Hallo!

Konkret will ich eine 2-Stufige Liste in einem GridView darstellen. Dazu definiere ich mit

XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
<GridView.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Vertical"/>
                </ItemsPanelTemplate>
            </GridView.ItemsPanel>
            <GridView.GroupStyle>
                <GroupStyle>
                    <GroupStyle.HeaderTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Name}" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}"/>
                        </DataTemplate>
                    </GroupStyle.HeaderTemplate>
                    <GroupStyle.Panel>
                        <ItemsPanelTemplate>
                          <VariableSizedWrapGrid Orientation="Horizontal"/>
                        </ItemsPanelTemplate>
                    </GroupStyle.Panel>
                </GroupStyle>
            </GridView.GroupStyle>


Mal die Form der Gruppen, und kann mit dem StackPanel im ItemsPanelTemplate des ItemsPanel die Flussrichtung der Gruppen bestimmen und mit dem VariabldWrapGrid des Panels die Flussrichtung der untergeordneten Elemente.
Nun kommt es aber zu einem Fehler... Ganz unten bekomme ich eine halbabgeschnitten dargestellte Gruppe, die es per definition des Win8-GridViews nicht geben sollte, da ja nach rechts weiter sortiert werden müsste. Gibts da irgendeine Property die ich da setzen muss? Ich hab sie nicht wirklich gefunden.

Des weiteren würde ich gerne die Elemente der Gruppe auch noch mal "fließen" lassen wenn sie den Rand erreichen? Wie kann ich das erreichen?
Die Items werden übrigens so definiert:


XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
<GridView.ItemTemplate>
                    <DataTemplate >
                        <Grid Width="100" Margin="10">
                            <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition Height="50"/>
                        </Grid.RowDefinitions>
                        <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="50" Height="50" HorizontalAlignment="Center">
                            <Image Source="{Binding Image}" Stretch="Fill"/>
                        </Border>
                        <StackPanel Grid.Row="1" VerticalAlignment="Top" Margin="10,0,0,0">
                                <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource TitleTextStyle}"/>
                               
                            </StackPanel>
                        </Grid>
                    </DataTemplate>
                
            </GridView.ItemTemplate>


Ich bin noch ziemlich neu bei XAML und noch überhaupt nicht sicher in dessen Verwendung, insofern kenn ich noch nicht alle Controls die ich brauche. Ich vermute dass ich statt dem VeriableSizeWrapGrid ein anderes Control verwenden sollte, damit ich die Items nochmal umlenken kann, oder?

mfg Namenlosnameless