0

我有几个 tabitems,每个都有一个 DataGrid,我将 DataGrid 的属性“AutoGenerateColumns”设置为 false。TabControl 被 ScrollViewer 包围,这是问题所在,每个 TabItem 中的每个 DataGrid 最后都有一个空列。我用谷歌搜索,但得到的有用的东西很少。这是代码结构。

<ScrollViewer>
    <TabControl>
        <TabItem>
            <DataGrid AutoGenerateColumns="False">
            </DataGrid>
        </TabItem>
    </TabControl>
</ScrollViewer> 

谁能帮我 ?非常感谢。

更新

OK,其实情况是,我在一个TabControl里面有好几个TabItem,但是TabControl的宽度是有限的,所以我打算用ScrollViewer来“滚动”TabItem,这样我就可以清楚的看到这些TabItem,这就是导致它的原因当前的问题。我认为,ScrollViewer 会影响 TabItems 的宽度,并间接影响每个 TabItem 中 DataGrid 的宽度,因此 DataGrid 中列的总宽度小于 DataGrid 的宽度,因此右侧有一个空列。

我尝试在 DataGrid 周围添加另一个 ScrollViewer,但失败了,右侧仍有空白部分。

4

1 回答 1

1

正如@ErenErsönmez 回答的那样,行为是DataGrid 的预期行为。要更改它,您需要设置列的宽度,其中至少一个设置为跨度。我使用以下方法使行跨越数据网格的宽度。

<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

于 2012-05-08T11:20:34.490 回答