DevExpress WinForms 24.1

Released: Jun 13, 2024

24.1 での更新項目

機能

  • DateOnly and TimeOnly Type Support
    • DevExpress WinForms data-aware UI controls (such as the Data Grid and TreeList) and the Date Editor now support DateOnly and TimeOnly data types (in .NET applications). These data types offer the following advantages (versus the traditional DateTime type): usage clarity, improved database compatibility, less space during serialization, and the ability to mitigate potential errors/inconsistencies related to different time zones.
    • Built-in DateOnly/TimeOnly support extends to:
      • UI Elements Related to Data Filtering (Column Filter Popup, Filter Editor, Expression Editor, Automatic Filter Row).
      • Conditional Formatting Rules.
      • Data Summaries.
      • Data Grouping.
      • Unbound Columns.
      • Masks.
      • Search.
      • Criteria Operators.
    • Added DateOnly/TimeOnly type support within the server-based data sources:
      • EntityServerModeSource / EntityInstantFeedbackSource.
      • LinqServerModeSource / LinqInstantFeedbackSource.
    • You can sort, group, and filter data in server mode sources against DateOnly and TimeOnly values. And you can use date/time-related functions (such as AddHours(), GetDays(), DateDiffDays()) in filter expressions and unbound columns.
  • Data Grid
    • Merged Cell Editing - Users can now simultaneously edit all cells in a merged range or modify separate cells (in GridView and BandedGridView) as needs dictate. Options include:
      • VisibleCells – Edits data cells in a merged range.
      • FocusedCell – Edits data cells in a merged range for the focused row.
      • Disabled
    • Display Custom UI Elements in the Find Panel - Added new APIs to display predefined and/or custom UI controls in the Find Panel. With this new option, you can build fully customizable/personalized interfaces when using the DevExpress Find Panel. Use view.FilterPanelItems to introduce custom Find Panel UI elements in your WinForms app:
      • AddControl - Displays the specified UI control.
      • AddButton - Displays a button.
      • AddCheckButton - Displays a checked button.
      • AutoHeight - Updates Find Panel height to match UI elements.
      • RemoveItem / RemoveItems – Removes the specified UI element(s) from the Find Panel.
    • Hide Specific Filters from Excel-inspired Filter Dropdown - The WinForms Data Grid control exposes a ShowFilterPopupExcel event and allows you to hide specific filter options from "Filters" and "Values" tabs of the Excel-style Filter Dropdown. This release adds an e.HideFilter(filterType) method to event arguments for advanced customization of the filter menu. Use this method to hide unnecessary filter operators from the "Filters" tab. This has also been introduced in the WinForms TreeList control.
    • Display a Custom DevExpress Popup Menu - In previous versions, you had to customize the built-in menu (add/remove menu items) within the control's PopupMenuShowing event. With this release, you can now display a custom menu (created and customized at design time or runtime) using the new e.ShowCustomMenu method. The API enhancements extend to: DevExpress TreeList, Vertical Grid (Property Grid), and Pivot Grid.
    • Export Cell Images to Excel - The WinForms Data Grid control now exports images (raster and SVG) displayed within cells of bound and unbound columns to XLSX in data-aware export mode.
    • Calculate the Best Size - Designed to address common layout-related dev tasks, the new CalcBestSize(maxSize, checkScrollInfo) method calculates the maximum allowable size of the Grid Control (to display as many data rows and columns as possible).
    • Custom Tile Painting for the DevExpress TileView (Kanban) - You can now customize tile appearance by handling the new TileView.CustomDrawTile event. With its comprehensive event arguments (APIs), you can easily change border shape and color or draw custom UI elements to address specific design requirements/user preferences. You can also render HTML and CSS templates inside tiles as needs dictate.
    • Display Tooltips for Trimmed Conditional Formatting Rules - If formatting rule name is larger than the width of the cell, the rule will now appear in a tooltip when you hover over the cell.
    • Annotate Conditional Formatting Rules - With this option, you and your end-users can now include descriptive text for conditional formatting rules, offering insights into the purpose and logic behind each rule.
  • TreeList
    • Expand Nodes on Search - With this new feature, users can now effortlessly locate specific TreeList nodes, even if they are collapsed within a complex hierarchy.
    • Improved Performance for Large Data Sources - Improved WinFroms TreeList performance to better address usage scenarios when large data updates are made to the underlying data source.
    • Auto-Filter Row Focus Retention - This addition to the WinForms TreeList control ensures that user focus remains unaffected when using the Auto-Filter Row, even during data updates.
  • Accordion
    • Display Item Captions in a Minimized State - Added a new CaptionShowMode property to control how the item caption is displayed when the Accordion control is minimized/collapsed. The new CaptionImageIndent property specifies the indent between the image and caption. Options include:
      • Below Image.
      • Above Image.
      • None.
    • Configurable Item Indents - With this new option, you can introduce fully personalized side navigation logic. The ChildIndentStartLevel property has been added. This property specifies the hierarchy level that starts the indentation of child elements. A new QueryElementIndent event has also been implemented that allows you to adjust the indent for specific accordion items based on design preferences/requirements.
  • Ribbon and Bars
    • Page Key Tips - Added a new ShowPageKeyTipsMode property. Use this property to configure the display of page key tips within the Ribbon UI. This enhancement allows users - who prefer to use keyboard shortcuts instead of mouse input - to quickly navigate through different Ribbon sections and access specific commands (without unnecessary keystrokes). Options include:
      • Hide - Hides key tips for all Ribbon pages.
      • ShowOnMultiplePages - Displays key tips only if the Ribbon UI displays multiple pages.
      • Show (Default) - Displays key tips for all visible Ribbon pages and for the selected page (even if the selected page is hidden).
    • BarCheckItem – Checked-state Image - You can now specify different images (bitmap or SVG) for checked and unchecked states of checkbox items (BarCheckItem). New APIs include:
      • CheckedImage / CheckedImageIndex / CheckImageKey.
      • CheckedLargeImage / CheckedLargeImageIndex / CheckLargeImageKey.
      • CheckedSVGImage.
    • Press Enter to Execute a Command - Extended the available user interactions within the command search box. Users can execute commands without the need for additional clicks or interactions. Handle the new SearchMenuEnterPressed event to execute a command based on freely written text or the first found command instantly when the user performs a search and presses the Enter key.
    • Manage and Display Relevant Commands within the Search Menu Popup
      • The Ribbon Control exposes a CustomizeSearchMenu event. This event allows you to implement custom logic to determine which commands must appear in search results. This release extends the event's arguments to simplify customization. New APIs include:
        • e.AddHeader(string caption) – Displays the header with a specific caption.
        • e.AddItem(BarItem item) – Displays the specified command in search results.
        • e.ShowNoMatchesItem – Specifies whether to display “No matches found” when a search query does not return results.
      • Introduced the UseCustomRibbonSearch property for those who prefer to generate search results from scratch. When set to true, the Ribbon Control does not auto-populate search results (e.Menu.ItemLinks). You won't need to clear pre-built search results before adding your own commands. Use the RibbonControl.OptionsSearchMenu property to access search-related settings. These include:
        • SearchItemPosition.
        • SearchItemShortcut.
        • UseCustomRibbonSearch.
    • Merge Ribbon Messages (MDI) - The Ribbon control of a parent Form now displays messages (Office-inspired flyout notifications and alerts) of Ribbon controls displayed on child MDI Forms when merged. Use the RibbonControl.MergedMessages property to access and manage merged messages.
  • Data Editors
    • DateEdit – DateOnly Type Support - The WinForms DateEdit control now supports the DateOnly data type. The following properties accept DateOnly values:
      • public DateOnly DateOnly { get; set; }.
      • public object MinDate { get; set; }.
      • public object MaxDate { get; set; }.
    • Simple Button – Custom Painting - Implemented a new CustomDraw event. Handle this event to paint the WinForms Simple Button manually.
    • Unified Padding Settings for Textbox-based Editors - This release ships with consistent padding settings across all DevExpress Textbox-based data editor types (such as TextEdit, SpinEdit, DateEdit, MemoEdit, etc.). These settings allow you to maintain visual consistency without having to specify different padding options for different editor types.
    • MemoEdit – Enhanced WXI Skin Visualization - Enhanced the visualization of MemoEdit borders and added scrollbar colorization within the WXI Skin. Accordingly, the DevExpress WinForms MemoEdit now supports DevExpress Skin colors.
    • Distinguish User vs. Code Modifications to the Editor's Value - You can now distinguish between modifications made by a user and those made programmatically (in code) to the editor's value. A e.ModifiedByUser parameter has been added to arguments for the EditValueChanging event.
  • Document Manager
    • Adding Content at Design-Time - The Document Manager supports deferred loading. To leverage this capability, document content must be generated at runtime in the QueryControl event handler. While this technique offers flexibility and performance benefits, it may be complicated for simple usage scenarios (where all documents are known at design-time). In this release, you can add User Controls and Forms to documents at design time (in Visual Studio).
  • Docking Library
    • Layout Restore Validation - You can now ensure the integrity and consistency of docking layouts during deserialization. Inconsistency or corruption of deserialized layout data can result in unexpected behavior, visual artifacts, or application crashes. The RestoreLayoutError event allows you to prevent loading of broken layouts or to handle/fix layout-related issues as needed.
  • HTML and CSS Support
    • Pre-Written Code Snippets for HTML/CSS - This release includes 40 pre-written HTML and CSS code snippets in the HTML Template Designer for Visual Studio. These are optimized code snippets that address common HTML-related tasks. Code snippets include:
      • Basic Elements (border, picture, link, tooltip, list, table).
      • Text and Font Snippets.
      • Layout Snippets.
      • Colors and Visual Elements.
      • Binding Snippets.
    • Align Editor Text - You can now use standard CSS properties to align DevExpress editor content (horizontally or vertically) used within HTML templates.
  • PDF Viewer
    • Signature Info Panel - With the new Signature Info panel, you can display detailed information for each signature in the loaded document and verify signature validity. When you open a document, the PDF Viewer verifies signatures and displays associated status in the Signature panel (valid, invalid, or unknown). In addition, the new panel displays the following signature-related information:
      • Location of the signature in the document.
      • Signer's information.
      • Reasons the signature was created.
      • Date and time when the document was singed and modified once it was signed.
      • Certificate information.
    • Layers - PDF document layers allow you to selectively view or hide specific content sections. The main purpose of layers is to control the visibility of graphics objects rendered in a PDF document across different states (when you view or print a PDF document).
      • Added a Layers panel to display all layers contained in a document.
      • With the power of the PDF Facade API, you can also access and manage layer visibility at runtime when you preview or print your PDF documents.
  • Rich Text Editor
    • Accessibility - Screen Readers Support - This release adds support for key accessibility-related requirements, including the ability for assistive technologies (such as screen readers) to read text in the body of a document, alternative text and names for images, text box content, headers, and footers.
    • Export to Accessible PDF - Extended accessibility-related support to the following elements when exporting Word documents to accessible PDF files:
      • Table of Contents tagging.
      • Metadata fields.
      • Alt text handling.
      • Tables.
      • Floating objects.
    • Decorative Shapes - Added a Decorative property for the Shape class to mark document graphics (pictures, shapes, and charts) as decorative. Decorative shapes add visual interest, but they are not informative. Thus, you do not need to specify Alt Text (meaningful description) for decorative objects when you generate an accessible document.
    • Math Equations - The Rich Text Editor now preserves Math Equations when saving a document. You can import your Word documents with Math Equations in the WinForms Rich Text Editor and save them to the RTF and OpenXml (.docx/.docm) formats without content loss.
    • Gutter and Mirrored Margins
      • This release allows you to specify gutter margins - extra space that ensures binding will not obscure text on printed pages. You can specify gutter position (top, left, and right) and margin size. Use the Document.GutterAtTop, SectionMargins.GutterPosition, and SectionMargins.Gutter properties to address specific usage requirements.
      • The new Document.MarginType property allows you to define a regular or mirrored margin type. Enable mirrored margins if you print on both sides of the paper and want to bind the printout.
      • New UI elements are also available.
    • Image Export API - This release includes new cross-platform APIs to export Word document pages to an image. This new capability allows you to generate document previews. With the new APIs, you can convert document pages to raster and vector images (PNG, JPEG, BMP, multi-page Tiff, emf), save them as physical files on the disk or obtain a list of image streams for further processing in code. You can also set image background color, modify output image resolution, or generate thumbnail images with a specified size. The new API is available via the RichEditDocumentServerExtensions.ExportToImage extension method of the Document object.
    • Export Document Pages to SVG - The new Image Export APIs allow you to export document pages to SVG. Use the RichEditImageExportOptions.Format option to set SVG as a target image format. SVG Export is also available from the user interface - open the Print Preview dialog, click the Export to Image button, choose the SVG format in the Image Options dialog and complete document export.
  • SVG Scroll Cursor
    • WinForms data-aware controls with scrollable content now ship with DPI-independent scroll cursor (the cursor that appears when the user presses the middle mouse button), providing smooth and precise navigation regardless of screen resolution.
  • Spreadsheet
    • Accessibility Enhancements - Decorative Shapes - Added a Decorative property for the Shape class to mark document graphics (pictures, shapes and charts) as decorative. Decorative shapes add visual interest, but they are not informative. Thus, you do not need to specify Alt Text (meaningful description) for decorative objects when you generate an accessible document.
    • Justify & Distributed Text Alignment - This release adds support for Justify and Distributed horizontal alignment types within Spreadsheet cells. Excel files using these alignment options can be printed and exported to PDF. You can use the Cell.Alignment.Horizontal property to specify horizontal alignment in code.
    • Sort and Filter by Color
      • The DevExpress WinForms Spreadsheet ships with enhanced filter and sort-related capabilities. New APIs have been added that can sort and filter workbook data by background and font color. Cell ranges filtered/sorted by cell color can also be printed and exported to PDF.
      • The Sorting APIs include new Worksheet.Sort method overloads designed to sort a specified range by font color or fill setting (background color and pattern).
      • The new APIs allow you to sort data across a filtered range (when auto-filter is enabled) and sort cells by their values/colors simultaneously (using sorting conditions).
    • Export Cell Range to SVG - In this release, the CellRangeExtensions.ExportToImage method has been enhanced and support has been added for the SVG image format.
  • Accessibility and UI Automation
    • Accessible Keyboard Navigation
      • TabPane & NavigationPane
        • Added keyboard navigation support to the WinForms TabPane and Navigation Pane controls (much like that of the XtraTabControl). Keyboard focus is now managed as follows:
          • Right/Left Arrow - Activates the Next/Previous page.
          • Ctrl+Tab / Ctrl+Shift+Tab - Activates the Next/Previous page and focuses the tab header or UI control displayed on the page.
          • Home - Activates the first page.
          • End - Activates the last page.
        • Additional API includes:
          • AllowNavigationThroughPages - Activate this option to focus the tab header (rather than the UI control displayed on the page) when the user navigates using the Tab key. This option is disabled by default.
          • ShowHeaderFocus - Displays/hides the focus rectangle.
      • TextBox-based Data Editors in BarEditItems
        • Improved keyboard navigation within the Ribbon UI and Toolbars. Keyboard focus is now appropriately managed to mimic behaviors found in Microsoft Word.
        • This release exposes new properties that allow you to suppress a keyboard key (Alt or Control) for bar items with embedded editors (BarEditItem):
          • BarManager.SuppressModifierKey - This global setting specifies the behavior for all BarEditItems within the Form.
          • BarEditItem.SuppressModifierKey - Specifies the behavior for a specific BarEditItem.
      • ButtonEdit-based Editors
        • Optimized the keyboard focus within the ButtonEdit-related controls to ensure that it follows a logical and intuitive sequence. Users can easily tab from the edit box to buttons, navigate through buttons using Left/Right keys, press buttons (Enter/Space), and tab back to the edit box (Escape or Shift+Tab).
        • Use the WindowsFormsSettings.KeyboardNavigationExtension property to enable this behavior for DevExpress TabPane, NavigationPane, and all ButtonEdit controls within the application.
        • Use the AllowButtonNavigation property to enable keyboard navigation for a specific ButtonEdit control.
        • Additional options include:
          • In-place Mode Support.
          • Right to Left Mode Support.
          • Advanced Mode Support.
      • WinForms TileView (Kanban) - End-users can now focus tile group header/footer buttons with the keyboard and use arrow keys for left/right navigation.
      • WinForms Diagram Control - Improved keyboard navigation in the DevExpress WinForms Diagram control. Users can now use the following keyboard keys:
        • Ctrl++ – Zooms in on the canvas.
        • Ctrl+- – Zooms out the canvas.
        • Ctrl+Space – Expands/collapses the focused container.
        • F4 – Opens the Properties window.
      • Column Filter Popup - When a user opens an Excel Filter Popup, the popup window automatically receives focus. Users can navigate between popup window UI elements using the keyboard.
    • Screen Reader Related Enhancements
      • This release ships with improved accessibility across the WinForms UI control library. Screen readers (such as Narrator and NVDA) can now pronounce the following user actions and properties:
        • Checking an item in the Data Grid Column Customization Menu.
        • Expanding/collapsing an item in the DevExpress Accordion Control.
        • Specifying criteria within the DevExpress Grid Auto Filter Row.
        • Focusing tokens in the Token Editor (a Screen reader pronounces tokes).
        • Focusing a group in the DevExpress WinExplorer View.
        • Focusing a cell in the DevExpress Grid New Item Row.
        • Navigating through card fields in the DevExpress CardView.
        • TextEdit.Properties.AdvancedModeOptions.Label.
        • TextEdit.Properties.NullValuePrompt.
      • Additional enhancements:
        • When a user enters an incorrect expression in the Expression Editor, the screen reader pronounces the error message.
        • When a user uses the integrated Find Panel to search for specific information, the screen reader pronounces the number of search results.
    • AccessKey and AcceleratorKey Support in Ribbon UI and Toolbars - Ribbon UI elements (Bar items, Ribbon pages, BackStageView, Group Caption button, and Application button) now expose the following accessibility-related properties:
      • AccessKey in MSAA and UI Automation.
      • AcceleratorKey in UI Automation.
  • Miscellaneous Enhancements
    • Assign Images by Key/Name - Image options now include a new ImageKey string setting. Use it to specify an image by its "name". Unlike ImageIndex, where adding or removing images can change the position of existing images in the collection (requiring the ImageIndex property to be updated), the ImageKey property identifies an image regardless of its position in the collection (search in the collection is done by the image name).
  • Performance Improvements
    • Improved Windows Forms Out-of-Process Designer - You can cut an additional 1-2 seconds from designer startup (if you do not need all DevExpress WinForms components simultaneously on your forms) by using the following smaller packages (like DevExpress.Win.Grid, DevExpress.Win.TreeList, DevExpress.Win.Charts, etc.) instead of the large DevExpress.Win.Design package.