我有几个tabitems,每个都有一个DataGrid,我将DataGrid的属性“AutoGenerateColumns”设置为false。 TabControl被ScrollViewer包含,这就是问题,每个TabItem中的每个DataGrid最后都有一个空列。我用Google搜索,但得到一些有用的东西。 这是代码结构。
<ScrollViewer>
<TabControl>
<TabItem>
<DataGrid AutoGenerateColumns="False">
</DataGrid>
</TabItem>
</TabControl>
</ScrollViewer>
任何人都可以帮助我吗?非常感谢。
更新
好吧,实际情况是,我在TabControl中有几个TabItems,但是TabControl的宽度是有限的,所以我将使用ScrollViewer“滚动”TabItems,所以我可以清楚地看到这些TabItems,这就是为什么它导致了当前的问题。我认为,ScrollViewer会影响TabItems 总宽度,并间接地影响每个TabItem中DataGrid的宽度,因此DataGrid中列的总宽度小于DataGrid的宽度,因此,有一个空的右侧的栏目。
我尝试在DataGrid周围添加另一个ScrollViewer,但是失败了,右侧还有一个空白部分。
答案 0 :(得分:1)
正如@ErenErsönmez所回答的那样,行为是来自DataGrid的预期行为。要更改它,您需要设置列的宽度,其中至少有一个设置为span。我使用以下内容使行跨越数据网格的宽度。
<TabControl>
<TabItem Header="Tab Item 1">
<DataGrid AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Column A" Width="Auto" />
<!-- The following column grows to span the available area -->
<DataGridTextColumn Header="Column B" Width="*" MinWidth="100" />
<DataGridTextColumn Header="Column C" Width="Auto" />
</DataGrid.Columns>
</DataGrid>
</TabItem>
<TabControl>
就滚动TabControl本身而言,您是否可以发布一些有关您要执行的操作的详细信息。我相信,由于有大量的标签,你正在尝试整个TabControl滚动。也许这样的事情(未经测试)会有助于http://rickdoes.net/post/2009/11/06/WPF-Single-Row-Tab-Control.aspx