免责声明:我知道这不是组织这种布局的最佳方式,但这实际上是我发现的最简单的表示,我用更复杂的布局重现了一个问题所以请不要提供一个可以重组图层的解决方案
这是xaml:
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Text Project">
<!--background grid-->
<Grid>
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<!--two columns layout-->
<Grid MinWidth="600">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid MinWidth="200" Background="Red"/>
</ScrollViewer>
<GridSplitter HorizontalAlignment="Right" VerticalAlignment="Stretch" Width="6"/>
<ScrollViewer Grid.Column="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid MinWidth="200" Background="Blue"/>
</ScrollViewer>
</Grid>
</ScrollViewer>
</Grid>
</Window>
目标如下: - 如果我调整窗口大小,一切都会缩放 - 如果我调整大小,当我达到minWidth时,最顶层的scrollviewer上的scroolbars会出现,其内容会停止缩小。 (这部分工作正常) - 无论最顶级的scrollviewer的大小,我都可以使用gridsplitter调整两列的大小 - 当我达到一列的最小宽度时,滚动条会出现在此列的滚动查看器上,其内容会停止缩小
问题:第二部分永远不会发生。我得到的是我可以调整大小,直到我达到两个子网格的minWidth之一,然后gridsplitter停止移动,我不能进一步收缩,滚动条永远不会出现。
我注意到如果我删除最顶部的网格及其关联的scrollviewer,它会按预期工作:
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Text Project">
<!--two columns layout-->
<Grid MinWidth="600">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid MinWidth="200" Background="Red"/>
</ScrollViewer>
<GridSplitter HorizontalAlignment="Right" VerticalAlignment="Stretch" Width="6"/>
<ScrollViewer Grid.Column="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid MinWidth="200" Background="Blue"/>
</ScrollViewer>
</Grid>
</Window>
我不明白为什么我将内部网格放入滚动查看器会改变网格探测器和内部滚动查看器的行为,所以我知道一个解决方案,我很高兴
答案 0 :(得分:4)
尝试将两列Width
的{{1}}绑定到外Grid
的{{1}},如下所示:
ActualWidth