水平ScrollBar永远不可见

时间:2014-03-10 15:59:50

标签: c# wpf xaml datagrid scrollbar

我需要一些帮助,因为我遇到了数据网格中的水平滚动条。

我有一个TabControl并且我将一个DataGrid添加到TabItem,问题是水平ScrollBar永远不可见,即使我设置ScrollViewer.HorizontalScrollBarVisibility="Visible"或者我将DataGrid放入网格

             <TabControl Margin="6,0,6,0" >
                  <TabItem>
                      <DataGrid  ItemsSource="{Binding}" AutoGenerateColumns="False" IsReadOnly="True" HorizontalAlignment="Center" VerticalAlignment="Center" SelectionMode="Extended">
                          <DataGrid.Columns>
                             <DataGridTextColumn Binding="{Binding BlaBla}" Header="BlaBlaBla" />
        ...
                         </DataGrid.Columns>
                     </DataGrid>
                  </TabItem>
...

有人可以帮我指出问题吗? 感谢。

修改:

以下是重现相同问题的示例代码,垂直滚动条正确显示但不显示水平滚动条

的Xaml:

<Window x:Class="BlaBla.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
    <Grid>
        <DataGrid  Name="datagrid" ItemsSource="{Binding}" AutoGenerateColumns="False" IsReadOnly="True" HorizontalAlignment="Center" VerticalAlignment="Center" >
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Date}" Header="Date" />
                <DataGridTextColumn Binding="{Binding Path=User}" Header="User"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>

代码隐藏:

    datagrid.DataContext = this.SomeDataTable;

如果我在控件周围<ScrollViewer HorizontalScrollBarVisibility="Visible">

,它就不起作用

2 个答案:

答案 0 :(得分:1)

非常简单,添加ScrollViewer并设置Auto forHorizo​​ntalScrollBarVisibility。试试这个。

<Grid>
    <TabControl>
        <TabItem Header="Hello">

                <ScrollViewer HorizontalScrollBarVisibility="Auto">
                    <DataGrid >
                        <DataGrid.Columns>
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                            <DataGridTextColumn Header="Name" />
                        </DataGrid.Columns>

                    </DataGrid>
                </ScrollViewer>

        </TabItem>
        <TabItem Header="Hello2">
        </TabItem>
        <TabItem Header="Hello3">
        </TabItem>
    </TabControl>
</Grid>

答案 1 :(得分:0)

好的,我解决了这个问题,但我不知道它为什么会有这种行为。 我不得不将滚动查看器的样式放在父窗口的资源上,否则它不显示水平滚动条而只显示垂直滚动条。

如果有人知道为什么我会很高兴知道这个解释。