ScrollViewer包围网格无法正常工作

时间:2011-08-05 08:55:46

标签: wpf grid scrollviewer

我在使用ScrollViewer时面临一个奇怪的问题

我有一个内置Grid的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个网格的高度而不是第三个网格的高度。最初插入每个网格(动态)的数据是这样的,前2个网格用于溢出而不是第3个网格。所以,现在当我调整窗口大小时,第三个网格仍然没有滚动查看器,即使现在数据溢出了空间,给人的印象是滚动查看器没有激活。

然而,我错过了一个简单的事实,即第3个网格的高度没有变化,而前2个网格高度正在变化,因此前2个网格的滚动查看器正常工作但不是第3个。

1 个答案:

答案 0 :(得分:0)

ScrollViewer中的网格为空。 scrollviewer期望滚动的内容是什么?