В списке находятся превьюшки с подписями. Подписи должны выравниваться по нижнему, а превьюшки по верхнему краю своего контейнера. Для этого нужно как-то рассчитывать и устанавливать высоту контейнера для каждого элемента:
Для списка используется контейнер WrapPanel
, вся панель с элементами может растягиваться через GridSplitter
, что приводит к перескакиванию элементов на след/пред строку. Поэтому количество элементов в строках может меняться и нужно каждый раз подгонять их высоту.
Разметка:
<ListBox Grid.Row="1"
Padding="15"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ItemsSource="{Binding Previews}"
SelectionMode="Extended">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" Orientation="Horizontal"></WrapPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Aqua">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="25" />
</Grid.RowDefinitions>
<Image Grid.Row="0"
MaxHeight="80"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Stretch="Uniform"
Source="{Binding Path}" />
<Label Grid.Row="1" Content="{Binding Name}" HorizontalAlignment="Center" VerticalAlignment="Bottom" MaxWidth="90px" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Подскажите, как сделать?
Можно сделать выравнивание по верхнему краю в WrapPanel
.
Согласно этому ответу на английском SO, для этого нужно для ListBoxItem
установить свойство VerticalContentAlignment
в Top
или Stretch
.
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="VerticalContentAlignment" Value="Stretch" />
</Style>
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть несколько запросов, к базе данныхСуммарно по времени они выполняются более 10 секунд
У меня есть вот такой вот html код, в котором есть vue атрибуты
Как правильно назвать имя в Jquery, если в html прописан атрибут name из php массива? Просто DATA[name] js не понимает, и скрипт не срабатывает