今天做项目中遇到个问题,就是页面加载后默认datagrid是不加载数据的,但是datagrid的列很多,就导致了运行效果上,此窗口的datagrid没有水平滚动条,类似图片的效果。

 

经过百度和摸索,使用下面的方法,可以实现在没有数据的时候也可以显示水平滚动条。

xaml中添加一句话

    <datagrid x:name="datagrid1" horizontalalignment="stretch" height="324" verticalalignment="top" width="772">
        <columndefinition width="500"></columndefinition><!--这里设置宽度,即可出现滚动条-->
        <datagrid.columns>
            <datagridtextcolumn header="列名一" width="180" ></datagridtextcolumn>
            <datagridtextcolumn header="列名二列名二列名二" width="180"  />
            <datagridtextcolumn header="列名三列名三列名三列名三" width="180" />
            <datagridtextcolumn header="列名四列名四" width="180"  />
            <datagridtextcolumn header="列名五列名五列名五列名五" width="180" ></datagridtextcolumn>
            <datagridtextcolumn header="列名六列名六列名六" width="180" ></datagridtextcolumn>
            <datagridtextcolumn header="列名七列名七列名七列名七" width="180" />
            <datagridtextcolumn header="列名八列名八列名八列名八列名八" width="110"  />
        </datagrid.columns>
    </datagrid>

  

另外就是datagrid不要放在stackpanel中,stackpanel在垂直和水平方向会无限放大,从而不会出现滚动条。

最终效果如下: