Uwp wrappanel / variablesizedgrid

В настоящее время я занимаюсь некоторыми проблемами дизайна. Мне нужна WrapPanel, которая содержит несколько расширителей, которые должны соответствовать показанному изображению. enter image description here

Поэтому, если пользователь откроет один, должны появиться некоторые команды. (может быть от 3 до 10 команд.) Я думаю, что лучше всего подойдет прокрутка, начинающаяся с 5 элементов)

В настоящее время я не заставил его работать. Если я переключаю первое поле, переключается каждое поле. И если я переключаю другой ящик, он также занимает полную высоту.

First Box ppen

И вот изображение, если первое окно закрыто. enter image description here

Думаю, для этого мне нужно несколько элементов управления. Во-первых, это Expander-Menu, а во-вторых, VariableSizedWrapGrid. Но оба вместе не работают, как ожидалось. вот мой текущий код.

<controls:DockPanel Grid.Row="1" Grid.Column="1" Background="#efefef" >
            <GridView x:Name="CommandList" controls:DockPanel.Dock="Top"  Margin="15" SelectionMode="None" VerticalContentAlignment="Top"  >
                <GridView.ItemTemplate>
                <DataTemplate>
                    <controls:WrapPanel Name="VerticalWrapPanel" Margin="2"
                             VerticalSpacing="10" HorizontalSpacing="10" Orientation="Vertical">

                    <controls:Expander  Style="{StaticResource ExpanderStyleCheckBox}" VerticalAlignment="Top" Margin="20,20,0,20" VerticalContentAlignment="Top"                                                
                               IsExpanded="True" Width="500"
                               ExpandDirection="Down" Background="White" Tapped="Expander1_Tapped" VariableSizedWrapGrid.RowSpan="{Binding RowSpan}" >
                        <controls:Expander.Content>
                            <ListView ItemsSource="{Binding Phrases}" Margin="30,0,0,0" Background="#efefef" SelectionMode="None">
                                <DataTemplate>
                                    <TextBlock  TextWrapping="WrapWholeWords" VerticalAlignment="Center" />
                                </DataTemplate>
                                </ListView>
                        </controls:Expander.Content>
                            <controls:Expander.Header>
                            <TextBlock Margin="10"  HorizontalAlignment="Left" FontSize="18" TextWrapping="WrapWholeWords" VerticalAlignment="Center">
                                                <Run Text="{Binding Heading}" />
                                    </TextBlock>
                            </controls:Expander.Header>
                           
                        </controls:Expander>
                    </controls:WrapPanel>
                </DataTemplate>
            </GridView.ItemTemplate>
            <GridView.ItemsPanel>
                <ItemsPanelTemplate>
                        <VariableSizedWrapGrid Margin="20" ItemWidth="530" VerticalAlignment="Top" VerticalChildrenAlignment="Top"
                            Orientation="Horizontal" MaximumRowsOrColumns="5" >
                        </VariableSizedWrapGrid>
                    </ItemsPanelTemplate>
            </GridView.ItemsPanel>
            </GridView>
    </controls:DockPanel>

Если бы кто-то мог мне помочь, это было бы здорово.

Спасибо и хороших выходных. Христианин

расширитель расширяет и увеличивает сторону одного элемента, а вид сетки любого вида сохраняет все элементы одинакового размера, поэтому вы видите, что другие элементы также занимают больше места, вам нужно подумать об альтернативном способе сделать это, если вы не разбираетесь в шаблонах затем вы можете изменить некоторые элементы шаблона в стиле панели элементов панели переноса.

Muhammad Touseef 11.08.2018 22:33

поскольку похоже, что вам нужно выбрать 1 элемент из списка и показать его на расширителе, хорошей альтернативой будет использование для этой цели «ComboBox», поле со списком будет открываться свободно, не нарушая размер других элементов.

Muhammad Touseef 11.08.2018 22:35

Если вы просто хотите иметь несколько дополнительных команд на кнопке, просто используйте кнопку и атакуйте всплывающее окно со всеми этими командами, есть несколько хороших вариантов, альтернативных расширителю, вам просто нужно увидеть, что лучше всего подходит для вашего сценария.

Muhammad Touseef 11.08.2018 22:37
1
3
315
0

Другие вопросы по теме