我正试图强制网格/扩展器重新评估它是否需要滚动条,因为它显示空虚。
我正在使用这种布局:
<Grid>
<toolstrip /> <!-- fixed height row -->
<Scrollviewer> <!-- * height -->
<Grid> <!-- all rows are 'Auto' height -->
<Expander />
<Expander> <!-- this one stretches far too high -->
<WPF Toolkit: DataGrid />
<Expander>
<GridSplitter/>
<Expander />
<Grid>
</Scrollviewer>
<stackpanel /> <!-- fixed height row -->
<Grid>
初始化Window时,DataGrid(WPF Toolkit)绑定到属性。通过一些调查,我意识到当窗口初始化时,GridView中的列开始大约10像素宽,然后添加内容,然后根据XAML中的大小调整大小(全部使用星形宽度) - 例如:2 *)。这会导致网格调整到窗口显示时所需高度的大约6倍,然后它不会回弹,只能看到窗口底部的内容是滚动或移动GridSplitter回到它应该的位置并调整窗口大小。我没有在任何东西上设置VerticalAlignment属性。
到目前为止,我已经在问题扩展器和InvalidateArrange(),InvalidateScrollInfo(),InvalidateVisual()和UpdateLayout()上尝试了以下所有名为InvalidateArrange(),InvalidateVisual();, InvalidateMeasure()和UpdateLayout()的函数。在它上方的网格上但它不会缩回。
有什么方法可以强制它在DataGrid中强制列的宽度?
答案 0 :(得分:0)
尝试在ScrollViewer上设置这些属性:
<ScrollViewer CanContentScroll="True"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto">
... content ...
</ScrollViewer>
如果这不起作用,您能否提供更准确的XAML表示。另外,深入了解ScrollViewer可能有所帮助。