wpf datagrid仍然隐藏滚动条

时间:2011-06-22 14:09:32

标签: wpf datagrid scrollbar hidden

我将代码列添加到datagrid视图。

    public List<DateTime> DaysOfMonth { get; set; }

    public static List<DateTime> GetDates(int year, int month)
    {
        return Enumerable.Range(1, DateTime.DaysInMonth(year, month)) 
                         .Select(day => new DateTime(year, month, day)) 
                         .ToList(); 
    }


//add to datagrid
            DaysOfMonth = GetDates(DateTime.Now.Year, DateTime.Now.Month);

            Dps.Columns.Add(new DataGridTextColumn { Header = "Raw material" });
            Dps.Columns.Add(new DataGridTextColumn { Header = "Description" });
            Dps.Columns.Add(new DataGridTextColumn { Header = "Part No" });

            foreach (var d in DaysOfMonth)
            {
                Dps.Columns.Add(new DataGridTextColumn { Header = d.ToShortDateString() , FontSize = 14});
            }

XAML:

    <DataGrid Name="Dps" 
              Margin="2,2,2,2"
              VerticalScrollBarVisibility="Visible" 
              HorizontalScrollBarVisibility="Visible" />

如果我在datagrid中有例如30列滚动条仍然隐藏我不知道为什么。

2 个答案:

答案 0 :(得分:0)

我依赖于DataGrid所在的容器。如果你是f.e.在DataGrid中,DataGrid只会增长,你就不会有滚动条。

答案 1 :(得分:0)

除非您的数据网格中确实有项目,否则水平滚动条不会显示。

如果你有一些场景,你的DataGrid没有项目,但你的列足够宽,需要一个水平滚动条,而不是使用DataGrid本身的ScrollBar属性......我发现它更容易放入而是将DataGrid直接转换为ScrollViewer。

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Margin="2,2,2,2">
    <DataGrid Name="Dps" />
</ScrollViewer>