C# 最后的网格行在wpf中显示在彼此的顶部

C# 最后的网格行在wpf中显示在彼此的顶部,c#,wpf,C#,Wpf,我在代码隐藏中将行添加到网格中,但每次末尾的一些行都会显示在彼此的顶部(重叠;就像它们在同一行中一样)。我知道我设置的行号不一样,而且每行的高度都是自动的 网格没有固定高度,但位于固定高度的选项卡标题内。我在网格中使用滚动条,效果很好(当我添加更多项目时,滚动条会展开),但在末尾总是有一些行重叠。所以网格并不是只接受一个固定的数字,或者保持固定的长度。即使我添加了几行,网格只占屏幕的一半,最后几行也会在最后重叠 我尝试对网格做的任何事情似乎都不会改变任何东西-我尝试将高度设置为“自动”,设置为固

我在代码隐藏中将行添加到网格中,但每次末尾的一些行都会显示在彼此的顶部(重叠;就像它们在同一行中一样)。我知道我设置的行号不一样,而且每行的高度都是自动的

网格没有固定高度,但位于固定高度的选项卡标题内。我在网格中使用滚动条,效果很好(当我添加更多项目时,滚动条会展开),但在末尾总是有一些行重叠。所以网格并不是只接受一个固定的数字,或者保持固定的长度。即使我添加了几行,网格只占屏幕的一半,最后几行也会在最后重叠

我尝试对网格做的任何事情似乎都不会改变任何东西-我尝试将高度设置为“自动”,设置为固定高度,一切都是一样的。我真的搞不懂发生了什么事

如有任何建议,将不胜感激。我知道数据网格可能在这里工作得更好,但现在我需要坚持使用这个网格

这是我的xaml代码:

<TabControl Grid.ColumnSpan="5" Grid.RowSpan="15" Height="640">
   <TabItem>
       <TabItem.Header>
           <StackPanel Orientation="Horizontal" Height="23" VerticalAlignment="Center">
                    <Image Source= "image.png" Margin="0,-3,0,0" VerticalAlignment="Center" Height="17" />
                    <TextBlock Margin="5,0,0,0" VerticalAlignment="Center">text</TextBlock>
           </StackPanel>
       </TabItem.Header>
       <ScrollViewer VerticalScrollBarVisibility="Auto">
           <Grid Name="myGrid">
              <Grid.ColumnDefinitions>
                  <ColumnDefinition Width="350"/>
                  <ColumnDefinition Width="100"/>
                  <ColumnDefinition Width="100"/>
                  <ColumnDefinition Width="100"/>
                  <ColumnDefinition Width="100"/>
                  <ColumnDefinition Width="100"/>
                  <ColumnDefinition Width="100"/>
                  <ColumnDefinition Width="100"/>
                  <ColumnDefinition Width="*"/>
              </Grid.ColumnDefinitions>

              <Grid.RowDefinitions>
                  <RowDefinition Height="20"/>
                  <RowDefinition Height="5"/>
                  <RowDefinition Height="1"/>
                  <RowDefinition Height="20"/>
                  <RowDefinition Height="10"/>
              </Grid.RowDefinitions>
      </Grid>
     </ScrollViewer>
    </TabItem/
    ...

对我来说很好。确保将其设置为的行号实际上是正确的索引:

Grid.SetRow(tb, myGrid.RowDefinitions.IndexOf(rowNew1));

仅供参考,没有“WPF C”之类的东西。谢谢,是的,我已经检查了行号,它们都是正确的。但它仍然在做同样的事情。。。是什么导致它这样做的?这是网格、选项卡标题或行的问题,还是我应该在哪里查找?谢谢你提供的关于wpf C#@JohnSaunders的提示,不会再发生了吧?你把这段代码粘贴到一个干净的项目中了吗?因为我做到了,而且效果很好。我唯一能想到的是一个旧版本的VS也许?我坐的是2012年快车。如果你的项目中有什么东西在做,那么一定有什么东西在改变样式。再次感谢。可能是因为我正在循环中添加行吗?还是因为账单?这些似乎不太可能,但我也不太可能。如果你能创建一个独立的问题演示,并提供下载,那么我很乐意为你看一看。
Grid.SetRow(tb, myGrid.RowDefinitions.IndexOf(rowNew1));