神秘的自动滚动WPF列表框

神秘的自动滚动WPF列表框,wpf,xaml,listbox,scroll,interaction,Wpf,Xaml,Listbox,Scroll,Interaction,有一个非常严重的问题。我的机器是Windows7 64位。我的列表框在所有64位计算机上正常滚动。但是,在32位系统上,列表框不能正常滚动。当用户单击向下箭头向下导航列表框列表时,列表框会向下移动,但随后会跳回到顶部。不管是通过箭头、鼠标滚轮还是在滚动条区域中单击来完成的。以前有没有人遇到过这个werid问题,并找到了解决方法?我试过用cpu x86和所有cpu发布,但无论哪种方式都是相同的问题 另一个注意事项:我在64it和32位操作系统之间遇到的另一个问题是将datagrid绑定到datat

有一个非常严重的问题。我的机器是Windows7 64位。我的列表框在所有64位计算机上正常滚动。但是,在32位系统上,列表框不能正常滚动。当用户单击向下箭头向下导航列表框列表时,列表框会向下移动,但随后会跳回到顶部。不管是通过箭头、鼠标滚轮还是在滚动条区域中单击来完成的。以前有没有人遇到过这个werid问题,并找到了解决方法?我试过用cpu x86和所有cpu发布,但无论哪种方式都是相同的问题

另一个注意事项:我在64it和32位操作系统之间遇到的另一个问题是将datagrid绑定到datatable。在我的系统上,如果datatable中有零行,它仍然绑定没有问题,但是在32位系统上,我们在尝试绑定到行计数为零的datatable时遇到绑定错误。只有在某些人看到两者之间存在某种werid相关性时才提及这一点

列表框XAML

<!-- System Listbox -->
    <Grid Grid.Row="2" Grid.Column="0" VerticalAlignment="Stretch">
        <DockPanel Margin="10,0,0,10" VerticalAlignment="Stretch">
            <ListBox x:Name="lbSystems" VerticalAlignment="Stretch" DockPanel.Dock="Left" Width="Auto" IsTextSearchEnabled="True" TextSearch.TextPath="{Binding Name}"
                     Background="Transparent" Foreground="{DynamicResource DynamicFrmFG}" FontFamily="Consolas" 
                     ItemsSource="{Binding Path=SystemsList}" ItemTemplate="{StaticResource mySystemTemplate}" SelectedItem="{Binding Path=SelectedSystem}" 
                     SelectionChanged="lbSystems_SelectionChanged" ContextMenuOpening="lbSystems_ContextMenuOpening">
                <ListBox.Resources>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="{DynamicResource DynamicCtrlHighlight}"/>
                    <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="{DynamicResource DynamicCtrlHighlight}"/>
                </ListBox.Resources>
            </ListBox>
        </DockPanel>
    </Grid>
列表框项目模板

    <Window.Resources>
    <DataTemplate x:Key="mySystemTemplate">
        <StackPanel VerticalAlignment="Stretch">
            <TextBlock Text="{Binding Mode=OneWay}" Foreground="{DynamicResource DynamicFrmFG}" FontSize="14" FontFamily="Consolas" 
                       TextWrapping="Wrap" Margin="0,2,0,2"/>
        </StackPanel>  
    </DataTemplate>
</Window.Resources>

编辑:使用.Net版本4。它是所有机器的标准版本。

看来它必须处理我的网格定义。我不太明白,但下面是我以前使用过的XAML

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="125" />
        <RowDefinition Height="*" />
        <RowDefinition Height="20" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="300" MinWidth="300" />
        <ColumnDefinition Width="475*" />
    </Grid.ColumnDefinitions>
<ColumnDefinition Width="300*" MinWidth="300" />
当我将第一列改为如下所示时,它开始在所有机器上正常滚动

<ColumnDefinition Width="300*" MinWidth="300" />

64位和32位计算机上的.NET版本是什么?有什么不同吗?添加了一个编辑以在所有机器上显示.Net 4。