Wpf 如何在ScrollViewer中使用流布局?
我有一个滚动查看器的情况,滚动查看器内部有一个环绕面板。预期的行为是内容不会向左和向右滚动,只会向上和向下滚动,并且内容会根据需要进行包装(变得更高)Wpf 如何在ScrollViewer中使用流布局?,wpf,xaml,Wpf,Xaml,我有一个滚动查看器的情况,滚动查看器内部有一个环绕面板。预期的行为是内容不会向左和向右滚动,只会向上和向下滚动,并且内容会根据需要进行包装(变得更高) <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" Margin="0"> <Grid x:Name="LayoutRoot"> <Grid.ColumnDefiniti
<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>
取而代之的是,滚动查看器告诉包裹面板它可以是任何宽度,因此包裹面板的行为类似于堆栈面板和剪辑,而不是包裹
有什么方法可以在完全阻止水平滚动的同时允许垂直滚动吗?为什么不将WrapPanel(或网格)的宽度绑定到ScrollViewer的宽度
<ScrollViewer x:Name="MyScrollViewer" ...>
<WrapPanel Width="{Binding ElementName=MyScrollViewer, Path=Width}" ... />
</ScrollViewer>
如果需要绑定到
宽度
或实际宽度
,则为非正值。如果其中一个不起作用,请尝试另一个。可能重复的(当然,这是Silverlight的答案,但在这里也适用)不是重复的。它禁用滚动,但不强制将内容的宽度设置为滚动查看器的宽度,并且由于正在使用WrapPanel,因此需要设置内容宽度,否则将无法正确包装项目。