Два сложных ListBox внутри одного ScrollViewer - PullRequest
0 голосов
/ 26 марта 2019

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

Собственно, в ScrollViewer был поставлен Grid, в чем у Expander

И моя проблема Как устроена прокрутка мышью этого построения?Я не могу прокрутить, если выбран какой-либо элемент списка.

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

<ScrollViewer 
      VerticalAlignment="Top" 
            Grid.Row="2">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                  <Expander IsExpanded="True" 
                   >
                   <ListBox ***><ListBox/>
                  </Expander>

               <Expander IsExpanded="True" 
                         Grid.Row="2" >
                   <ListBox ***><ListBox/>
                  </Expander>

               <ListBox  ***><ListBox/>
               </Expander>
</ScrollViewer>

Пример изображения того, как это выглядит

Прошу прощения за то, что экранне переведено, а для «ломаного языка» вопроса.

Edit

Если упростить задачу.

Проблема будет выглядеть так: необходимо обеспечить прокрутку (текущий список или все пространство не имеет значения) при выборе любых элементов из списка.Если убрать глобальную прокрутку, то проблема с определением высоты списков

<Grid>
    <ScrollViewer HorizontalAlignment="Left" Margin="7,2,0,0" Width="493" CanContentScroll="True">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="30" />
                <RowDefinition Height="auto" Name="firsrow"/>
                <RowDefinition Height="*" MinHeight="100" Name="secondrow"/>
            </Grid.RowDefinitions>
            <Border Grid.Row="1"  >
                <Expander IsExpanded="True" >
                    <Expander.Header>
                        <StackPanel Orientation= "Horizontal">
                            <TextBlock Text = "header1" />
                        </StackPanel>
                    </Expander.Header>
                    <Grid >
                        <ListBox x:Name="listBox" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
                            <ListBoxItem >
                                <TextBlock Text="1">
                                </TextBlock>
                            </ListBoxItem>
                            <ListBoxItem >
                                <TextBlock Text="2">
                                </TextBlock>
                            </ListBoxItem>
                            <ListBoxItem  >
                                <TextBlock Text="3">
                                </TextBlock>
                            </ListBoxItem>
                            <ListBoxItem >
                                <TextBlock Text="4">
                                </TextBlock>
                            </ListBoxItem>                                
                        </ListBox>
                    </Grid>
                </Expander>
            </Border>
            <Border Grid.Row="2"  >
                <Expander   IsExpanded="True">
                    <Expander.Header>
                        <StackPanel Orientation= "Horizontal">
                            <TextBlock Text = "header2" />
                        </StackPanel>
                    </Expander.Header>
                    <Grid >
                        <ListBox x:Name="listBox_2"  ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
                            <ListBoxItem >
                                <TextBlock Text="1">
                                </TextBlock>
                            </ListBoxItem>
                            <ListBoxItem >
                                <TextBlock Text="2">
                                </TextBlock>
                            </ListBoxItem>
                            <ListBoxItem >
                                <TextBlock Text="3">
                                </TextBlock>
                            </ListBoxItem>
                            <ListBoxItem >
                                <TextBlock Text="4">
                                </TextBlock>
                            </ListBoxItem>

                        </ListBox>
                    </Grid>
                </Expander>
            </Border>
        </Grid>
    </ScrollViewer>
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...