DevExpress WinForm擁有180+組件和UI庫,能爲Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易於使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕鬆勝任!
在之前的文章中(點擊這裏回顧>>),我們爲大家介紹了DevExpress WinForms將在6月發佈的新版本中公開的一些新功能,接下來的一系列文章我們將就之前的內容展開說明,敬請期待哦~
注意:Early Access和CTP builds版本僅用於早期測試目的,不準備用於生產使用。此版本可以與DevExpress產品的其他主要版本並排安裝,請在安裝Early Access和CTP版本之前備份您的項目和其他重要數據。
支持DateOnly & TimeOnly
DevExpress WinForms數據感知UI控件(如數據網格、樹列表、編輯器)現在支持DateOnly和TimeOnly數據類型(在.NET和.NET Framework應用程序中),與傳統的DateTime類型相比,這些類型提供了以下優點:使用清晰、改進的數據庫兼容性、序列化期間更少的空間,以及減輕與不同時區相關的潛在錯誤/不一致的能力。
內置DateOnly和TimeOnly支持擴展到:
- 過濾相關的UI元素(列過濾器彈出窗口、過濾器編輯器,自動過濾器行)
- 條件格式規則
- 條件操作符
- 表達式編輯器
- 未綁定列
- 搜索
- 總結
- 分組
- 掩碼
官方技術團隊還希望在未來的更新中擴展DateOnly和TimeOnly數據類型對數據編輯器庫(包括DevExpress WinForms DateEdit和TimeEdit控件)的支持。
WinForms Data Grid(數據網格)
合併單元格編輯
用戶現在可以同時編輯合併區域中的所有單元格,也可以根據需要修改單獨的單元格(在GridView和banddedgridview中)。使用新的MergedCellEditMode屬性啓用此特性,並指定用戶如何編輯合併的單元格數據。
選項包括:
- VisibleCells — 編輯合併區域中的數據單元格。
- FocusedCell — 編輯聚焦行合併區域中的數據單元格。
- Disabled
using DevExpress.XtraGrid.Views.Grid; // Allows users to edit data cells in a merged range. gridView1.OptionsView.MergedCellEditMode = MergedCellEditMode.VisibleCells;
在查找面板中顯示自定義UI元素
這個版本包含了新的API,可以在Find Panel中顯示預定義和/或自定義UI控件。有了這個新選項,您可以在使用DevExpress Find Panel時構建完全可定製/個性化的界面。
使用FilterPanelItems在WinForms應用中引入自定義的查找面板UI元素:
- AddControl — 顯示指定的UI控件。
- AddButton — 顯示按鈕。
- AddCheckButton — 顯示選中的按鈕。
- AutoHeight — 更新查找面板高度來匹配UI元素。
- RemoveItem / RemoveItems – 從查找面板中刪除指定的UI元素。
// This code snippet comes from the Find Panel module in our WinForms Data Grid demo (v24.1). CheckButton showCustomButton = null; void ceShowCustomButton_CheckedChanged(object sender, EventArgs e) { CheckEdit customButton = sender as CheckEdit; if(customButton.Checked) { showCustomButton = view.FindPanelItems.AddCheckButton(customButtonName, null, view.OptionsFind.Behavior != FindPanelBehavior.Search, (button, args) => { CheckButton checkButton = button as CheckButton; view.OptionsFind.Behavior = checkButton.Checked ? FindPanelBehavior.Filter : FindPanelBehavior.Search; checkButton.ToolTip = "Find Panel Mode"; icbFindPanelBehavior.EditValue = view.OptionsFind.Behavior; }); showCustomButton.ImageOptions.ImageUri.Uri = "Filter;Size16x16;Svg"; } else { showCustomButton = null; view.FindPanelItems.RemoveItem(customButtonName); } icbFindPanelBehavior.Enabled = showCustomButton == null; }
Context Menu API增強
v24.1將簡化了爲單個Data Grid UI元素顯示DevExpress彈出菜單的過程。
在以前的版本中,您必須在控件的"PopupMenuShowing"事件中自定義內置菜單(添加、刪除菜單項),在v24.1中,您可以使用新的e.ShowCustomMenu方法輕鬆顯示自定義菜單(在設計或運行時創建和自定義):
void gridView1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { if (e.MenuType == GridMenuType.Column) { popupMenu_Column.Tag = e.HitInfo; popupMenu_Column.MenuCaption = $"{e.HitInfo.Column}"; e.ShowCustomMenu(popupMenu_Column); } }
API增強擴展到:DevExpress TreeList、Vertical Grid (Property Grid)和Pivot Grid。
自定義Excel列過濾器
DevExpress WinForms Data Grid控件包含一個ShowFilterPopupExcel事件,用於隱藏受Excel啓發的過濾器下拉菜單中的“Filters” 和“Values”選項卡中的特定過濾器選項。v24.1爲事件參數添加了e.HideFilter(filterType)方法,來實現靈活的過濾器定製。使用這種方法,您可以在“Filters”選項卡中隱藏特定的篩選項(以限制選項並簡化UI)。
void gridView1_ShowFilterPopupExcel(object sender, DevExpress.XtraGrid.Views.Grid.FilterPopupExcelEventArgs e) { if (e.Column.FieldName == "UnitPrice") { e.HideFilter(DevExpress.Utils.Filtering.Internal.CustomUIFilterType.BelowAverage); e.HideFilter(DevExpress.Utils.Filtering.Internal.CustomUIFilterType.Between); e.HideFilter(DevExpress.Utils.Filtering.Internal.CustomUIFilterType.BottomN); // ... } }
計算最佳尺寸
爲了解決常見的與佈局相關的開發任務,新的CalcBestSize(maxSize, checkScrollInfo)方法計算網格控件的最大允許大小(以顯示儘可能多的數據行和列)。
DevExpress TileView (Kanban)自定義磁貼繪製
您現在可以通過處理新的TileView.CustomDrawTile事件來定製tile的外觀,通過其全面的事件參數(APIs),您可以輕鬆更改邊框形狀和顏色或繪製自定義UI元素,以滿足特定的設計需求/用戶偏好。
您可以根據需要在tile中呈現HTML和CSS模板。