ScrollViewer, охватывающий Grid, не работает должным образом - PullRequest
0 голосов
/ 05 августа 2011

У меня странная проблема с ScrollViewer

У меня ScrollViewer с сеткой внутри.Высота сетки требует вертикальной полосы прокрутки.Во время выполнения полоса прокрутки видна, но отключена и не имеет индикатора прокрутки между двумя стрелками.

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

вот код

<Grid><Canvas Height="250" Width ="400" Margin="0,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Background="White" Name="ModeCanvas">
                    <Rectangle Width="{Binding ElementName=ModeCanvas,Path=ActualWidth}" Height="{Binding ElementName=ModeCanvas,Path=ActualHeight}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stroke="Black" StrokeThickness="2"/>
                    <Grid Height="244" Width ="394" Margin="3,3,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Name="ModeParent">
                            <ScrollViewer VerticalScrollBarVisibility="Visible" >
                                <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="ModeGrid" >
                                </Grid>
                            </ScrollViewer>
                        </Grid>
                    </Grid>
                </Canvas>
                <Canvas Height="250" Width="400" Margin="0,255,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Background="White" Name="InputDataCanvas">
                    <Rectangle Width="{Binding ElementName=InputDataCanvas,Path=ActualWidth}" Height="{Binding ElementName=InputDataCanvas,Path=ActualHeight}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stroke="Black" StrokeThickness="2"/>
                    <Grid Margin="5,5,5,5" Width="390" Height="240" Name="InputDataParent">
                        <ScrollViewer VerticalScrollBarVisibility="Visible" >
                            <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="InputDataGrid" >
                            </Grid>
                        </ScrollViewer>
                    </Grid>
                </Canvas>
                <Canvas Margin="0,510,0,0" Height="250" Width ="400" VerticalAlignment="Top" HorizontalAlignment="Left" Background="White" Name="OutputDataCanvas">
                    <Rectangle Width="{Binding ElementName=OutputDataCanvas,Path=ActualWidth}" Height="{Binding ElementName=OutputDataCanvas,Path=ActualHeight}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stroke="Black" StrokeThickness="2" />
                    <Grid Margin="5,5,5,5" Width="390" Height="240" Name="OutputDataParent">                        
                            <ScrollViewer VerticalScrollBarVisibility="Visible">
                            <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="OutputDataGrid">
                            </Grid>
                        </ScrollViewer>
                    </Grid>
                </Canvas>


В этом коде - первые 2 Canvas визуализируют полосу прокрутки просто отлично, но по какой-то причине третий создает проблему

Любые идеи ??

РЕДАКТИРОВАТЬ

Наконец-то получил ошибку в коде.Проблема заключалась в коде позади.

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

Однако я пропустилпростой факт, что высота 3-й сетки не изменялась, тогда как высота первых 2-х сеток изменялась, поэтому средство просмотра прокрутки для первых 2-х сеток работало правильно, но не 3-я.

1 Ответ

0 голосов
/ 05 августа 2011

Сетка внутри ScrollViewer пуста.Какую прокрутку ожидает прокрутка?

...