.net 在按住ItemsControl时,ScrollViewer没有绑定

.net 在按住ItemsControl时,ScrollViewer没有绑定,.net,wpf,xaml,.net,Wpf,Xaml,我有一个相当复杂的应用程序。许多prism用户控件包含其他用户控件等 在这个应用程序的一个选项卡中,我有一个UserControl非prism,它有一个网格,其中包含一个ScrollViewer,而ScrollViewer又有一个ItemsControl 由于某些原因,ScrollViewer没有绑定到网格。我使用snoop,它显示ScrollViewer是ItemsControl中所有控件的全长 这导致我无法获得所需的滚动条 下面是它的外观: <Grid> <Grid

我有一个相当复杂的应用程序。许多prism用户控件包含其他用户控件等

在这个应用程序的一个选项卡中,我有一个UserControl非prism,它有一个网格,其中包含一个ScrollViewer,而ScrollViewer又有一个ItemsControl

由于某些原因,ScrollViewer没有绑定到网格。我使用snoop,它显示ScrollViewer是ItemsControl中所有控件的全长

这导致我无法获得所需的滚动条

下面是它的外观:

<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-感谢您调查我的问题。我已经试过你的建议了。我可能应该把它们从我发布的代码中删除。原来我有一个更高的网格,它在一行大小自动。有一次我把它改成了*它按预期工作。很棒的发现!快乐编码: