У меня есть сетка с источником источника xbind в наблюдаемой коллекции. Коллекция состоит из пользовательского элемента управления (который по сути является кнопкой). Я хочу, чтобы вид сетки соответствовал элементам следующим образом.GridView с автоматической настройкой позиции
1) Если он может показать два предмета в одной строке, вперед.
2) Если он может отображать только один элемент, ему необходимо растянуть его, чтобы занять все пространство.
Если точка 2 не соблюдается, в строке есть только один элемент, так как второй элемент не может попасть в первую строку, все это пустое пространство выглядит очень плохо.
<GridView ItemsPanel="{StaticResource VariableSizedItemTemplate}" ItemContainerStyleSelector="{StaticResource VariableSizedStyleSelector}" Name="ContentGrid" ItemsSource="{x:Bind projectsButtonCollection,Mode=OneWay}"></GridView>
<ItemsPanelTemplate x:Key="VariableSizedItemTemplate">
<VariableSizedWrapGrid Orientation="Horizontal"/>
</ItemsPanelTemplate>
селектор VariableSizedStyle в настоящее время назначение стилей в соответствии со свойством пользователя control.Property это просто INT, который мы инициализируем при создании пользовательского элемента управления. Стили имеют ряды и столбцы.
<Setter Property="VariableSizedWrapGrid.RowSpan"
Value="2" />
<Setter Property="VariableSizedWrapGrid.ColumnSpan"
Value="2" />
Я не думаю, что текущий код поможет, как я хочу, чтобы изменить способ, что я делаю это прямо сейчас, детали корректируются красиво до есть место только для одного пользовательского элемента управления в строке. Тогда у меня все это осталось.
Можете ли вы показать код? – AbsoluteSith
Добавлена панель GridView и детали стиля. – cykopath
Если вы не хотите изобретать велосипед, есть [AdaptiveGridView] (http://www.uwpcommunitytoolkit.com/en/master/controls/AdaptiveGridView/) в [UWP Community Toolkit] (https: // blogs. windows.com/buildingapps/2016/08/17/introducing-the-uwp-community-toolkit/), который делает именно то, что вы ищете, – AVK