Я работаю над приложением Windows 8 в C#/XAML.Представляем список шагов
У меня есть список шагов для показа, и список может иметь один-много шагов.
Я пробовал элементы управления GridView
и ListView
, но с ними невозможно, чтобы каждый элемент имел собственную высоту (поскольку один шаг может иметь только одну строку текста, а следующие три строки, например). VariableSizedGridview
тоже не помогает.
То, что я пытаюсь достичь, - это что-то вроде способа приготовления шагов в Microsoft Bing Food & Напиток. Итак, шаги показаны в строках в первом столбце, и когда конец страницы достигнут, он создает второй столбец и так далее. Например:
Может ли кто-нибудь помочь мне найти способ добиться этого?
Какой контроль над использованием и каким образом?
Это выглядит очень просто, но я не смог найти решение во время поиска в Интернете.
Спасибо
Вот что я сделал с контролем Gridview
(Listview
был очень похож):
<Grid Name="gridSteps" Grid.Column="3" Margin="25,69,25,69">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="ÉTAPES" FontSize="22" FontWeight="Bold"></TextBlock>
<GridView Grid.Row="1" Name="gvGroupSteps" SelectionMode="None" IsHitTestVisible="False" VerticalAlignment="Top">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel Width="400">
<TextBlock Text="{Binding Order}" Margin="0,15,0,0" FontSize="20" Foreground="Bisque"></TextBlock>
<TextBlock Text="{Binding Description}" Margin="0,5,0,0" FontSize="18" TextWrapping="Wrap"></TextBlock>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel Background="#FFC9C9C9">
<TextBlock Text="{Binding GroupName}" FontSize="20" FontWeight="SemiBold"></TextBlock>
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</GridView.GroupStyle>
</GridView>
</Grid>
Спасибо, я пойду читать. И я просто добавил образец кода. – vincenormand
Проблема с 'Listview' и' Gridview' заключается в том, что даже если я пытаюсь установить высоту каждого элемента независимо, высота применяется ко всем элементам. Поэтому, если мой последний элемент имеет высоту 100, каждый другой элемент будет иметь высоту, равную 100. Я могу использовать свойство RowSpan, но это не совсем то, что я хочу сделать. Что касается элемента управления Listbox, он не разрешает динамические столбцы при достижении максимальной высоты, поэтому я не думаю, что буду использовать это. – vincenormand