New Release! ComponentOne 2019 v3
We're pleased to announce ComponentOne 2019 v3. This is an exciting release - we have new controls, .NET Core 3 news, Ribbon updates, and much more. This release is packed with enhancements for our most popular controls for WinForms, ASP.NET, and WPF.
We are introducing our first native Blazor controls. With Blazor, developers can use their existing C# programming skills on the server and client to build rich web applications. The ComponentOne Blazor Edition is designed to provide essential UI controls that can be developed using C# without having to rely on as much HTML, JavaScript and CSS experience.
Blazor & Web Updates
Announcing Our First Data Grid and Input Controls for Blazor (Beta)
New in 2019 v3, ComponentOne Blazor Edition (Beta) is a set of native UI controls built for Blazor from the ground up. Round out your server and client-side C# web apps with FlexGrid, our best cross-platform data grid, and several input controls including AutoComplete, CheckBox, and ComboBox.
To get access to these controls, download them from the link above. If you provide your email during the install, you'll also be signed up for the beta program. By joining the beta program, you will get up-to-date information from the GrapeCity team regarding our Blazor Edition including official release dates and possible discounts.
You can also share your feedback in our Blazor Forums.
Try the ComponentOne Blazor Edition
FlexGrid for ASP.NET Gets Multi-Range Selection
It can't be called FlexGrid without the most flexible cell selection model available. In this release, we've added multi-range selection, which works when the user presses and holds CTRL (or command) between selecting multiple ranges of cells. To support this behavior in FlexGrid, we've added a new selection mode called MultiRange and a new selectedRanges property, which returns an array containing the selected CellRange objects.
Additionally, FlexGrid for ASP.NET Core MVC has some new APIs to use when you want to tune performance in rare scenarios. Most people will not need to use them, but we exposed them for those who do. When using them, make sure to carefully read the documentation.
- refreshRange method
- LazyRender property
- RefreshOnEdit property
FlexSheet for ASP.NET Gets AutoFill
Users of Excel will be happy to see the AutoFill feature is now supported in FlexSheet for ASP.NET Core MVC. The AutoFill feature allows users to fill selected cells based on pattern, exactly like in Excel. This feature is enabled by setting the AllowAutoFill property.
New Step Line Chart Types Added to FlexChart
FlexChart for ASP.NET Core MVC now supports Step, StepSymbol, and StepArea charts. These charts are useful to display any type of data that has changes at irregular intervals of time, such as interest rates vs time.
Needles Added to Radial Gauges
Gauge needles, or pointers, are used to indicate the gauge value, and are often the alternative to the filled-bar design of most modern gauges.
The RadialGauge control for ASP.NET Core MVC now supports needle-based pointers with the following new properties and methods:
- NeedleShape
- NeedleLength
- NeedleElement
- CreateNeedleElement
.NET Core 3.0 Support for ASP.NET Core MVC and Web APIs
In addition to ASP.NET Core MVC, our powerful server-side Web APIs have been enhanced with .NET Core support and more.
-
ASP.NET Core MVC Edition Controls: Now with support for Core 3.0, there is a new version for these controls available on NuGet.
-
DataEngine API: Introduced in 2019 v2, the DataEngine API (beta) now allows the analysis of large amounts of data. It can be used in conjunction with ASP.NET Core MVC and Wijmo OLAP controls for visually analyzing in-memory data with high speed.
-
Excel API: Now with .NET Core support (beta), these APIs allow you to generate Excel files from XML, JSON, and .NET Collections, convert Excel files to JSON/XML and vice versa, split and merge files, add/remove rows and columns, and more.
-
BarCode API: Now with .NET Core support (beta), generate barcodes on the fly by simply calling an API. The API returns an image of a barcode that can be inserted into any document, and it supports over 35 different barcode types.
-
Cloud Storage API: Now with ASP.NET Core support (beta). These cloud storage APIs enable CRUD operations over Azure, AWS, DropBox, GoogleDrive, and OneDrive services.
Desktop Updates - WinForms
FlexGrid Row Details - A New Spin on Hierarchical Grids
The FlexGrid for WinForms has always supported hierarchical data trees, but the new row details feature gives you more flexibility when creating nested grids. The row details allow you to display additional or related information within a collapsible panel below each row of the grid. You can display an input form, a child data grid, or anything else in the detail row.
FlexGrid has two built-in row detail providers; IC1InputPanelRowDetail that can be used as an edit form, and IC1FlexgridRowDetail, which can be used to display child records in a master-detail grid. Additionally, FlexGrid allows customization to illustrate any other control inside the row details.
FlexGridRowDetail:
Officially Released - The New Fluent Ribbon for WinForms
We originally released C1Ribbon control for WinForms more than a decade ago, and over the years we have continued to add features to keep pace with Microsoft Office. This year we decided it was time to create a new ribbon control to cater to requests from our users. The new Ribbon for WinForms is built on .NET 4.5.2 and it's based on UI concepts of Office 365. With it you'll enjoy:
- New simplified view when the ribbon is collapsed.
- 20+ embedded controls including buttons, progress bars, updated galleries and more.
- Enhanced set of embedded images for buttons along with support for font and vector-based icons.
- A backstage view and status bar component.
Since the beta release, we've added the following new features:
- Designer for the IconSet property.
- Icons to default icon presets.
- Smart tags to the C1BackstageView.
- PreferredItemSize property to RibbonMenu and RibbonSplitButton components. This property specifies the size of the drop down items.
- Support for scrolling the content of the selected tab.
- ProgressBar value can now be set via Accessibility.
- Accessibility support for the DatePicker drop down.
- GetColorIndex method to the RibbonColorPickerItem class. This method returns the color index from the palette.
- GalleryItemTextImageRelation property to the RibbonGalleryItem class. This property specifies the position of text and image relative to each other.
- LargeImage, Image, SmallImage properties to components of ribbon. These properties were added for ease of migration from the classic version of the Ribbon.
Users of the old ribbon will be pleased to know that the new ribbon also supports the same 40+ themes and they can customize it using the C1ThemeController. We will continue to maintain the old C1Ribbon, which is now displayed as "classic" in the Visual Studio toolbox.
Read more about Getting Started with ComponentOne Row Details
FlexPivot Gets KPIs
FlexPivot now supports displaying KPI information such as Trend, Goal, and Status from the cube source. Once the KPI fields are identified, they can be added to value fields within the pivot panel. The FlexPivot control has in-built graphics to show these KPIs such as Cylinder, Gauge, StandardArrow, VarianceArrow, RoadSigns, and TrafficLight.
Edit Charts at Runtime with the New FlexChart Designer
FlexChart for WinForms now has a runtime designer, which enables the end-user to make changes to the chart. Users can simply double-click a section of the chart to open the designer. The designer supports changing the data source fields, series, axis, header, footer, legend, and other chart properties.
Here is a look at the FlexChart Designer:
In order for you to customize it further, the source code for the runtime designer is shipped as a sample, along with the demo shown in the video above. To persist the runtime changes between runs of the application, you can serialize FlexChart. Here is a sample that shows how to serialize FlexChart.
Continued Support for .NET Core 3.0
The entire studio of ComponentOne WinForms Edition has been upgraded to support .NET Core 3.0.
- Multi-Project Template Added: We've addeda new multi-project template for .NET Core 3.0 that allows you to quickly create .NET Core projects with our controls, while leveraging the designer experience of the .NET Framework designer. The solution consists of two projects, one is the .NET Core 3.0 project, which is the target framework. The second project is a .NET Framework project that allows for the use of the design surface. Since Core 3.0 WinForms designer is still in an early stage and may not offer the exact experience as the .NET Framework designer, this template offers a flexible way to work in .NET Core with the design experience developers are used to.
- NuGet Packages Available: Starting with the 2019 v3 release, ComponentOne WinForms Edition now includes NuGet packages for all the libraries. This can be convenient for some developers who prefer to use NuGet to manage all third party libraries, as well as developers working with .NET Core 3.0 with their Windows Forms applications. The NuGet packages are installed along with the DLLs at Files/ComponentOne/Packages.
Additional WinForms Edition Updates
New C1ThemePicker control let's users select theme name and allows changing themes at runtime when its ThemeController property is set.
ComponentOne WinForms Edition has many other smaller improvements in the 2019 v3 release. They're listed at the end of this post.
Desktop Updates - WPF
ComponentOne WPF Edition .NET Upgrades
The entire studio of ComponentOne WPF Edition has been upgraded to support some of the latest technologies including .NET Framework 4.5.x and .NET Core 3.0.
- New Version Targets .NET Framework 4.5.2: The entire library of WPF controls has been moved to .NET Framework 4.5.2 as the new base version. Starting with the 2019 v3 release, the WPF Edition includes two versions: 4.0 and 4.5.2. We will continue to support .NET 4.0 for one more year, or longer if user demand is there. If you are not planning to migrate to .NET 4.5.x or higher within the next year and would require further support for our .NET 4.0 controls, please reach out and let us know.
- .NET Core 3.0 Support: ComponentOne WPF Edition controls are supported in .NET Core 3.0 with some caveats. The traditional licensing mechanism using the licenses.licx file now must be manually generated in new WPF projects that target .NET Core 3.0. In this release, we've also included a new project template that has it generated already. For details on how to manually generate the licenses file, see here: (Link to Alec's blog with instructions)
- NuGet Packages Available: Starting with the 2019 v3 release, the entire WPF library is now also being shipped by NuGet, for the .NET 4.5.2 version only. This is required to use WPF controls in a .NET Core application.
FlexGrid for WPF Enables More Column Freezing Scenarios
A new runtime usability feature and a new sample demonstrate how you can enable more control over column freezing and pinning in FlexGrid for WPF.
The new AllowFreezing property enables you, as the developer, to put column freezing into the hands of your end-users. Previously, columns could be frozen programmatically, but with this new property and feature, column freezing can be enabled entirely at runtime.
Additionally, we've added a new sample for FlexGrid that shows how to enable column pinning using the existing API. While it is similar to freezing, column pinning allows more than the left-most columns to be frozen in place. The user may pin any column by clicking the pin icon in the column header. A pinned column is reordered to the left and made frozen. Column pinning, when combined with column reordering and freezing, gives end-users full control over their data grids.
RichTextBox for WPF Line Numbers
Turn on automatic line numbers to improve text editing and revising. ComponentOne RichTextBox for WPF can now display line numbers continuously throughout the whole document or restart at 1 on each page. The feature can be easily toggled by the user from the View tab or by the developer setting the LineNumberMode property.
FlexSheet for WPF Enhancements
- New export option that allows users to remove blank cells when exporting.
- Performance improved with better resource management.
- Users may not change the number of frozen columns at runtime using the new AllowFreezing property.
- Increased comment box size.
Xamarin Updates
FlexViewer for Xamarin Releases with Built-in Toolbar UI
Display PDF content in your native mobile apps using the new FlexViewer for Xamarin control. The FlexViewer control is a flexible, cross-platform report and document viewer. The Xamarin version, which is supported in Xamarin.Forms (Android and iOS only), Xamarin.Android and Xamarin.iOS, can be used primarily to display PDF files. The built-in menu allows runtime searching, printing, and exporting. Previously released as a preview, this first release of the control also has a richer API to customize the UI to match your app's requirements. For example, the menu items can be easily customized, or you can hide the entire thing and use your own toolbar.
Service Components Updates
C1DataEngine Now Includes a Desktop Workbench App
Use the C1DataEngine Workbench desktop app on Windows or Mac to create and visualize queries using an intuitive visual designer and without writing code. Use it as a standalone tool for data analysis, or to examine base tables and query results created by any application that uses C1DataEngine.
For developers who are using the C1DataEngine library in their .NET Core applications, this tool provides the following additional benefits:
- Import external data without coding. Supported data formats include SQL Server, CSV, and JSON.
- Generate JSON strings that can be used to create queries programmatically using the C1DataEngine API library.
- Visualize query result sets using a variety of chart components.
- Remove unwanted query result sets from existing C1DataEngine workspaces.
C1DataEngine Workbench is installed alongside the ComponentOne Service Components module.
C1TextParser: New Samples for Parsing Text from PDF and Word Files
To help support C1TextParser, our cross-platform text parting component, we've added new samples that show how to extract text from PDF and Word files. These samples take advantage of other existing libraries in ComponentOne: C1Word and C1PdfDocumentSource. A common use case would be reading the text from the document as plain text, and then using C1TextParser to parse from the plain text. You can see this in action using the Win/ExtractorEditor sample installed with the ComponentOne Service Components.
Additional WinForms Edition Improvements
C1Command
- Added Padding property for C1CommandLink class.
C1FlexGrid
- Added SearchDefinition property for C1FlexGrid to get or set an XML string containing the current search state.
- Improved description of CellStyle.SearchBackColor property.
- Added CellLabelDelay property for C1FlexGrid. You can get or set the period of time (in milliseconds) that the mouse pointer remains over a cell, whose contents are partially hidden, before the tooltip label is displayed.
- Added ShowFilterIcon property that indicates whether the column filter icon is displayed.
C1GanttView
- Added C1GanttView.Options.OutlineColumn property.
C1Input
- [C1DateEdit] DropDown calendar now shifts by two months when double-clicking the next/previous arrow.
- [C1SplitButton] Added up/down arrow buttons in the drop-down list. Arrows appear when not all items fit on the screen.
C1InputPanel
- Added the ToolTipMember property to the InputComboBox class. This property gets or sets the property to tooltip for items of InputComboBox.
C1List
- Added HotRowChanged event.
- Hovered row is now highlighted using the HighLightRowStyle.
C1Themes
- Added IC1Themeable interface which helps to control the application of a theme.
- An additional parameter added to the C1ThemeController.ApplyThemeToControlTree method, which applies the theme to the children controls regardless of whether the theme has been applied to the parent control.
DashboardLayout
- Added C1DashboardLayout.Options.HeaderAppearance property.
DataFilter
- Added support for updating CheckListFilter items when the data source is a DataTable and the data source is changed.
- Added the ShowClearFilterButtons property to the C1DataFilter control. This property gets or sets a value indicating whether to show clear filter buttons in the filter headers or not.
- Added the Reset method to the Filter class. This method resets the filter value to the default value.
- Added navigation support using keyboard and mouse by date editor of the DateRangeFilter.
- Added summary support for ChecklistFilter items.
- Added custom format support for the DataRange filter.
- Added support for themed scrollbars.
- Added the AutoWidthMode property. This property "Gets or sets" the mode by which the C1DataFilter automatically sets its own width.
- Added the PredicateExpression class. This class represents the expression which takes a predicate as the filtering function. This class doesn't work with a DataTable.
FlexPivot
- [C1FlexPivotSlicer] Added accessibility support.
- [C1FlexPivotChart] Added support for end-user Copy action. On pressing Ctrl+C chart image in png format is copied to clipboard.
MultiSelect
- Added separate placeholder element in C1TagEditor/C1MultiSelect.
- [C1CheckList] Added accessibility support.
TreeView
- Added support of gradients for CustomContentPresenter from themes.
- Added the ColumnHeaderMouseClick event to the C1TreeView control. This event occurs when the user clicks a column header.