1. 程式人生 > >DevExpress GridControl 關於使用CardView的一點小結

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

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

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


效果如下:


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

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


3、要用到卡片,大多數情況是要展示圖片用的。如何展示呢?新增一個儲存圖片的物件(我這裡是直接在資料來源中新增Image型別的欄位),然後更改該欄位的ColumnEdit的型別為PictureEdit,並命名為rowPicture,如下圖



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

CardView:

rowPicture:


效果如下圖:



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)
            {

······
            }
        }

到這就差不多解決問題了,提示下,注意將圖片快取,以提高效能。