.net 在按住ItemsControl时,ScrollViewer没有绑定
我有一个相当复杂的应用程序。许多prism用户控件包含其他用户控件等 在这个应用程序的一个选项卡中,我有一个UserControl非prism,它有一个网格,其中包含一个ScrollViewer,而ScrollViewer又有一个ItemsControl 由于某些原因,ScrollViewer没有绑定到网格。我使用snoop,它显示ScrollViewer是ItemsControl中所有控件的全长 这导致我无法获得所需的滚动条 下面是它的外观:.net 在按住ItemsControl时,ScrollViewer没有绑定,.net,wpf,xaml,.net,Wpf,Xaml,我有一个相当复杂的应用程序。许多prism用户控件包含其他用户控件等 在这个应用程序的一个选项卡中,我有一个UserControl非prism,它有一个网格,其中包含一个ScrollViewer,而ScrollViewer又有一个ItemsControl 由于某些原因,ScrollViewer没有绑定到网格。我使用snoop,它显示ScrollViewer是ItemsControl中所有控件的全长 这导致我无法获得所需的滚动条 下面是它的外观: <Grid> <Grid
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*" />
<ColumnDefinition Width="50*" />
</Grid.ColumnDefinitions>
<!-- Other stuff here -->
<ScrollViewer Grid.ColumnSpan="2" Grid.Row="3"
VerticalScrollBarVisibility="Visible" >
<ItemsControl HorizontalAlignment="Stretch"
ItemTemplate="{StaticResource ExistingContainerTemplate}"
ItemsSource="{Binding ExistingContainers}"
FocusVisualStyle="{DynamicResource InvisibleFocusVisualStyle}" Padding="2,0,0,0">
<i:Interaction.Behaviors>
<local:ScrollIntoViewForItemsControl ScrollItem="{Binding ExistingContainerItem}" />
</i:Interaction.Behaviors>
</ItemsControl>
</ScrollViewer>
</Grid>
令人沮丧的是,我在Kaxaml中尝试了类似的东西,但效果很好:
<Grid>
<ScrollViewer Width="200" BorderBrush="Black" BorderThickness="5">
<ItemsControl>
<Rectangle Fill="Green" Width="100" Height="100"/>
<Rectangle Fill="Red" Width="100" Height="100"/>
<Rectangle Fill="Blue" Width="100" Height="100" />
<Rectangle Fill="Black" Width="100" Height="100"/>
</ItemsControl>
</ScrollViewer>
</Grid>
如果你知道如何将它绑定到网格上,我很乐意听你这么说。事实证明,我有一个网格围绕着所有这些,它有一个高度为Auto的RowDefinition 因为它是自动的,所以它正在成长以适应所有的内容
有一次我把它换成*它工作得很好。似乎没什么问题,我试了一下,果然如期工作。但是,我无法尝试使用现有ContainerTemplate InvisibleFocusVisualStyle和ScrollIntoViewForItemsControl,因此无法保证其中任何一个是否会导致您面临的问题。那么,您是否可以发布一个显示问题的工作示例?@pushpraj-感谢您调查我的问题。我已经试过你的建议了。我可能应该把它们从我发布的代码中删除。原来我有一个更高的网格,它在一行大小自动。有一次我把它改成了*它按预期工作。很棒的发现!快乐编码: