天天看點

DevExpress GridControl 關于使用CardView的一點小結

最近項目裡需要顯示商品的一系列圖檔,打算用CardView來顯示,由于第一次使用,遇到許多問題,發現網上這方面的資源很少,是以把自己的一點點實際經驗小結一下,供自己和大家以後參考。

1、選擇CardView,将原來的GirView轉換為CardView,如下圖

DevExpress GridControl 關于使用CardView的一點小結
DevExpress GridControl 關于使用CardView的一點小結

效果如下:

DevExpress GridControl 關于使用CardView的一點小結
DevExpress GridControl 關于使用CardView的一點小結

2、控件預設是縱向排列,如果要改成橫向排列,改變屬性MaximumCardColumns(允許橫向排列的卡片數量)和MaximumCardRows(允許縱向排列的卡片行數)。

我這裡設定為:MaximumCardColumns:-1、MaximumCardRows:1,效果如下圖;

DevExpress GridControl 關于使用CardView的一點小結
DevExpress GridControl 關于使用CardView的一點小結

3、要用到卡片,大多數情況是要展示圖檔用的。如何展示呢?添加一個存儲圖檔的對象(我這裡是直接在資料源中添加Image類型的字段),然後更改該字段的ColumnEdit的類型為PictureEdit,并命名為rowPicture,如下圖

DevExpress GridControl 關于使用CardView的一點小結
DevExpress GridControl 關于使用CardView的一點小結
DevExpress GridControl 關于使用CardView的一點小結

4、又發現圖檔的大小被限制了,改變CardView(卡片高度自适應,以适應圖檔的高度)和rowPicture(設定圖檔的高度)兩個地方的屬性即可,如圖

CardView:

DevExpress GridControl 關于使用CardView的一點小結
DevExpress GridControl 關于使用CardView的一點小結

rowPicture:

DevExpress GridControl 關于使用CardView的一點小結
DevExpress GridControl 關于使用CardView的一點小結

效果如下圖:

DevExpress GridControl 關于使用CardView的一點小結
DevExpress GridControl 關于使用CardView的一點小結

5、布局問題解決了,其他需要調整的,其實屬性裡都有,這裡隻是示範。如何根據URL将圖檔下載下傳下來顯示,這裡貼出主要代碼:

                var client = new WebClient();

                client.DownloadDataCompleted += client_DownloadDataCompleted;

                client.DownloadDataAsync(new Uri(img.Url));

        private void client_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)

        {

            try

            {

                Image img = Image.FromStream(new MemoryStream(e.Result));

······                

            }

            catch (Exception ex)

            {

······

            }

        }

到這就差不多解決問題了,提示下,注意将圖檔緩存,以提高性能。