我有一个滚动查看器的情况,以及该滚动查看器内部的包装面板。预期的行为是内容不会向左和向右滚动,只能向上和向下滚动,并且内容会根据需要换行(变得更高)。
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" Margin="0">
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="330" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="74" />
<RowDefinition Height="75" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- ... other stuff ... -->
<WrapPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Orientation="Horizontal" Margin="35,0,0,0">
<Button Style="{StaticResource CreateModelButtonStyle}"
CommandParameter="Design"
Command="{StaticResource WindowProfileUnconditional}">
<StackPanel>
<TextBlock Style="{StaticResource HomePageButtonMarqeeTextStyle}" Text="Blah Blah"/>
<TextBlock Style="{StaticResource HomePageButtonDescriptionTextStyle}" Text="Blah Blah" />
</StackPanel>
</Button>
<!-- A bunch more buttons -->
</WrapPanel>
<!-- ... other stuff ... -->
</Grid>
</ScrollViewer>
我得到的行为是滚动查看器告诉包装面板它可以是任何宽度,因此包装面板的行为类似于堆栈面板和剪辑而不是包装。
是否有某种方法允许垂直滚动,同时完全阻止水平滚动?
答案 0 :(得分:0)
为什么不将WrapPanel(或Grid)的宽度绑定到ScrollViewer的宽度?
<ScrollViewer x:Name="MyScrollViewer" ...>
<WrapPanel Width="{Binding ElementName=MyScrollViewer, Path=Width}" ... />
</ScrollViewer>
如果您需要绑定到Width
或ActualWidth
,则不是肯定的。如果一个不起作用,请尝试另一个。