Quantcast
Channel: Developer Express Global
Viewing all 3388 articles
Browse latest View live

Blog Post: ASP.NET WebForms for Bootstrap - New Controls & Enhancements (v19.1)

$
0
0

Our most recent ASP.NET Bootstrap release (v19.1) includes a number of new controls and usability enhancements.

New Color Edit

This release includes a new Bootstrap Color Edit control. Its features include:

  • Color indicator
  • Custom color picker
  • Automatic / favorite color item
  • Custom palettes

DevExpress ASP.NET Bootstrap Color Edit

We ported this control from our existing ASP.NET Color Edit control so it provides the same set of features and functionality.

Demo

New Floating Action Button

Our new Floating Action button encapsulates popular end-user actions (e.g., CRUD operations, data sorting, filtering, etc.). Floating Action buttons are fully configurable and support custom actions.

Key features include:

  • Container indication
  • Fixed position
  • Customizable appearance

DevExpress ASP.NET Bootstrap Floating Action Button

This button includes the same features as our ASP.NET Floating Action Button (introduced in late 2018).

For those unfamiliar with our ASP.NET Floating Action Button – This new button element hovers over other controls and offers easy access to common actions. It can be used to replace context menus, toolbars, etc. Take a look at how the Floating Action Button can be used in the Grid View control:

DevExpress ASP.NET Bootstrap Floating Action Button with Grid

Demo

Drop-down Editors - Adaptivity Enhancements

With this release, DevExpress Bootstrap drop-down editors (ComboBox, DateEdit, etc.) can switch to modal mode based upon browser width:

DevExpress ASP.NET Bootstrap Drop Down

Demo

Date Edit - Scroll Picker

We added a new mobile-friendly way to select dates with the DevExpress Bootstrap DateEdit control:

Demo

These features were inspired by the adaptivity enhancements in our ASP.NET Data Editor library.

As always, we’d love your feedback – Tell us what you think of these new DevExpress ASP.NET Bootstrap controls and adaptivity enhancements? Comment below or submit a support ticket via our Support Center.


Blog Post: WinForms Tips & Tricks - What You May Have Missed (Part 5)

$
0
0

Here it is: the fifth part of our What You May Have Missed series for WinForms developers. Once more we have collected several items that may be new to you.

In case you haven’t seen the previous posts of the series, here is an overview:

Other Tips & Tricks blog posts:

Reset the BarItem Delete Confirmation dialog

When you press the Del key to remove a selected item link from a Bar Manager or Ribbon Control, a confirmation dialog pops up. It asks you to confirm how you would like to remove the element: just that particular link (leaving the source item and any other links intact), or the source item with all of its links.

Delete Confirmation

The dialog includes a checkbox Do not ask me next time, which is obviously useful if you need to repeat the operation. However, you may also regret checking the option when you’re no longer offered a choice when you use the Del key next time. To get the dialog back, find the key HKEY_CURRENT_USER\Software\Developer Express\Designer\XtraBars\ShowBarElementDeletionConfirmation and set it to True.

In the future, we may add an option for this purpose to the dialog Change Design-Time Settings, which you can bring up from the DevExpress menu in Visual Studio. Please let us know in the comments whether you would like to see this happen sooner rather than later.

WindowsUI Button Panel Customization

If you use the WindowsUI View for the Document Manager component, you are probably familiar with the WindowsUI Button Panel. It is a panel with flat round buttons that can be configured as regular push buttons or check buttons. In addition, the panel offers flexible customization options.

Buttons Without Borders

For starters, try turning the property UseButtonBackgroundImages off to remove the default circular borders. Also turn off AllowGlyphSkinning if you use vector icons. The appearance in this configuration may remind you of a flat-style toolbar:

WindowsUI Button Panel Normal Toolbar

On the other hand, it can look completely different:

High Contrast Bottom Toolbar

Note: In case you play along and notice at this point that the buttons don’t seem to visually react to the mouse, please read on for a solution in the section No Borders And Custom States.

Using the property ImageOptions.Glyph you can assign an image collection to each button. Up to five images are supported to represent the states Normal, Hovered, Pressed, Checked, and Disabled. You can use completely independent icons for all states, and the property ImageSize on the DevExpress Image Collection specifies how big your button will appear. In the animation below, buttons use an SvgImageCollection with IconSize set to 64x64.

Buttons With Custom Glyphs

Custom Backgrounds

A similar mechanism can be used for background images. Assign an image collection to the panel property ButtonBackgroundImages and you can have buttons with any border shape you like, instead of the default circles.

Buttons with Custom Background Images

By combining these features you can create completely unique buttons. Here is a panel that uses both custom background shapes and button glyph collections.

Buttons Combining Custom Glyphs And Background Images

No Borders And Custom States

If you do your own tests with borderless buttons and custom glyphs, you may notice that the Button Panel doesn’t show any reactions to mouse actions if AllowGlyphSkinning is off. This happens because there is no background to indicate the state change. You can try to switch AllowGlyphSkinning on and configure ForeColors for Hovered and Pressed states, but then the custom colors will change the icons.

Here is a setup that avoids this problem. AllowGlyphSkinning is off and the background image collection has three images. One is a completely transparent square (that’s the Normal state), the other two are filled black at 30% opacity (for the Hovered and Pressed states). ForeColor values for the Hovered and Pressed states have been configured to Gray and DeepSkyBlue. The animation shows the result: borderless buttons with custom visual states for the background, and icons that don’t change with the states.

Custom Background Visual Status

Integrating With Other Controls

Finally, a WindowsUI Button Panel can be used as a navigation element for TileControl, TileBar, NavigationFrame and ImageSlider controls. The panel looks at the number of child items in the target control and calculates how many “pages” are required to show them all. It then displays a corresponding number of buttons, shown as radio buttons in the animation below. The calculation is fully dynamic – resize the target control at runtime and the number of pages is reassessed automatically.

Button Panel Pager Behavior

To take advantage of this feature, create a Pager Navigation Behavior, set its Target property to the content control being navigated, and the Pager property to the WindowsUI Button Panel (simple Radio Groups are also supported).

Demo Center – Shiny Showcases And Lots More

You know that the DevExpress installer includes many demos for our controls and components. We update those demos continuously, so be sure to check them out when you have time! All DevExpress demos are available from the Demo Center application. There are two main demo types:

  • Real-life Demos are large sample applications that demonstrate many DevExpress controls at once
  • Control Demos are smaller and focus on one specific control each. Control demos usually have many modules that illustrate individual features, typically with a list of settings to try out.

All demos are stored in the directory C:\Users\Public\Documents\DevExpress Demos xx.x\Components\WinForms. If you open one of the folders – here’s the Data Grid demo folder as an example – you’ll see all the modules included in the demo.

Data Grid Demo Modules

If you see a demo with a feature you’d like to implement in your own application, or some useful customization or design, you need to find the exact Visual Studio solution module that includes the relevant source code.

To make this easy, each demo in the Demo Center has an Open Solution button. Choose your preferred programming language and Visual Studio will open the demo module you’re currently looking at.

Open Solution

The same works for real-life demos, too – just right-click an item in the Demo Center.

Open Solution For A Real-Life Demo

It is also possible to copy links to demos. Our technical writers are main beneficiaries of this feature, when they insert these links into documentation or blog posts, so readers can run demos directly from the page they’re reading. However, you can also use these links to refer colleagues to a demo, or to include in a Support Center ticket.

Copy Demo Link

A final item that deserves a mention is the Code Examples demo. This demo is available for our major controls and components and features small code samples that illustrate how to solve common tasks. You can also use the demo as a playground: just modify the code snippet, it recompiles when you stop typing, and the live preview reflects your changes.

Code Examples

Let’s Hear Your Thoughts

Hopefully you found something interesting in today’s selection. If you did, or if you recently discovered something really cool in the DevExpress suite and you think others might be unaware, please share it in the comment section below!

In addition, we’d like to ask a question. We recently published the rather lengthy post Mastering Filter Editors, and most of our Tips & Tricks posts are quite long as well. Do you like this format, or would you prefer it if we kept individual posts short and focused on one feature at a time?

Blog Post: DevExtreme React Scheduler - Drag & Drop Editing (v19.1)

$
0
0

Great news for users of our native React Scheduler: the component now supports Drag&Drop editing and appointment resizing.

Native React Scheduler Drag&Drop

To activate the new features, you need to add the DragDropProvider plugin to your scheduler configuration. EditingState is also required to handle changes. Overall, your result may look like this:

1
2
3
4
5
6
7
8
<Schedulerdata={data}>
<EditingStateonCommitChanges={...} />

<WeekView />
<Appointments />

<DragDropProvider />
</Scheduler>

The DragDropProvider has two properties allowDrag and allowResize that control which appointments can be dragged or resized. For example, this snippet disables dragging for all-day appointments and completely disables resizing:

1
2
3
4
<DragDropProvider
allowDrag={({ allDay }) => !allDay}
allowResize={() => false}
/>

In addition, you can use the properties draftAppointmentComponent and sourceAppointmentComponent to override the rendering of the dragged elements during the process, for instance to provide visual feedback to the user.

A short guide with an example is available, as well as the reference documentation for the DragDropProvider plugin.

What Do You Think?

If you have any thoughts on our implementation, please don’t hesitate to leave a comment below or take part in our feature discussion on GitHub.

Blog Post: DevExtreme - Web Diagram Control CTP (v19.1) - Getting Started

$
0
0

One of the common scenarios in using a diagram control is creating an organization chart. In this "getting started" article we introduce the few steps needed to create one with our new jQuery Diagram control, save it, load it, configure the control, and so on.

jQuery Diagram: Creating OrgCharts Using our JavaScript Widget

The article also covers these topics:

  • Bind the OrgChart to a data source
  • Load OrgChart "entities" to a toolbox panel
  • Add custom shapes to an OrgChart
  • Save and Load an OrgChart's Layout
  • Configure Page Settings
  • Export an OrgChart

DevExpress Diagram Widget

Demo

Tell us what you think of the new Web Diagram widget and comment below or submit a support ticket via our Support Center.

Blog Post: DevExtreme - Data Grid - Excel Data Export Enhancements

$
0
0

In v18.2 we introduced the callback customizeExcelCell for the DevExtreme Data Grid. However, a few features planned for this customization hook were delayed. Now we have completed the missing functionality and made it available in v18.2.8 and v19.1.2.

The customizeExcelCell callback now receives information about grid cells in group and summary rows, so that the entire grid setup can be replicated in an Excel export.

As usual, the functionality described in this post applies to all platforms supported by DevExtreme, including Angular, Vue, React, jQuery and ASP.NET MVC and ASP.NET Core.

Customize Excel Export

groupIndex

The first of two important changes is that the groupIndex value is passed to customizeExcelCell. This enables you to distinguish different group levels in the callback and format output accordingly. For example, you could assign different background colors:

1
2
3
4
5
6
7
8
if (gridCell.rowType==='group') {
if (gridCell.groupIndex===0) {
options.backgroundColor='bedfe6';
}
if (gridCell.groupIndex===1) {
options.backgroundColor='c9ecd7';
}
}

Background Colors Depending On Group Index

gridCell and groupSummaryItems

The second big change is that the gridCell property includes details about each column and related summary items when customizeExcelCell is called for a group row cell.

This example shows a group caption together with its summary:

1
2
3
4
5
6
7
if (gridCell.rowType==='group') {
if (gridCell.column.dataField==='Employee') {
options.value=
gridCell.value+' ('+gridCell.groupSummaryItems[0].value+' items)';
options.font.bold=false;
}
}

Group Caption With Summary

You can also apply a custom number format to a summary value:

1
2
3
4
5
6
if (gridCell.rowType==='group') {
if (gridCell.column.dataField==='SaleAmount') {
options.value=gridCell.groupSummaryItems[0].value;
options.numberFormat='&quot;Max: &quot;$0.00';
}
}

Formatted Group Header Value

For footer and total summary values, you need to check for rowType === 'groupFooter' and rowType === 'totalFooter' (see the rowType documentation).

Documentation And Demo

Our documentation page for customizeExcelCell contains all relevant information. We also updated the demo Excel Cell Customization to show the new functionality.

Your Feedback Is Welcome

Please feel free to leave comments below if you have any thoughts about the new functionality. Your feedback is important to us!

Blog Post: We’re at NDC Oslo this week

$
0
0

This week, one of the coolest conferences in Europe is taking place in Oslo, Norway. It is the annual NDC Oslo  with an awesome speaker line-up.

John and I will be there with our booth and we brought T-Shirts with our new design on it so you better stop by our booth to get one. I’m sure you’ll like it.

While you’re there I’m more than happy to show you all the new features we have released with our v19.1 version incl. our Blazor components.

If you’re attending to NDC Oslo, make sure to stop by to tell us what you’re developing.

Blog Post: Web Report Designer – Our Reimagined Report Wizard (v19.1.4)

$
0
0

As you may already know, DevExpress Reporting (v19.1.x) ships with a redesigned Web Report Wizard. The purpose of this post is to detail its capabilities, to explain why we redesigned the wizard and to show you how you can leverage our new implementation to deliver better user experiences to your customers.

Goal #1: Reduce the Number of Report Wizard Steps

One of our primary goals during the redesign process was to reduce the number of individual steps within the wizard. To create a standard table report with groups and summaries, our old Report Wizard required users to navigate 11 pages.

We also wanted to reduce the confusion that resulted from the “modal” design of the Report Wizard. As the image below illustrates, our old Report Wizard could be confusing – users often tried to click outside the boundaries of the wizard while creating a new report.

DevExpress Web Report Wizard - Reimagined

Our new wizard is now displayed in full screen and allows end-users to focus on the new report and gives us the ability to make better use of screen real-estate.

The Basic Layout of the New Report Wizard

DevExpress Web Report Wizard - Basic Layout

The New Report Wizard in Action

DevExpress Web Report Wizard

Context-Driven UI

A report wizard such as ours makes compromises. Since its built to address a wide array of usage scenarios, it includes functionality not necessary for all reports (i.e., every report does not require data table relationships, grouping, sorting, summaries, etc.). By converting to a context-driven UI, we’ve made our Report Wizard easier to use. Much like cascading combo boxes, the Report Wizard now populates itself dynamically (based on current selection).

This new design allowed us to cut the number of wizard steps to 5. Users can now create a report in less time and with fewer mouse clicks.

DevExpress Web Report Wizard - Steps

Here's a comparison of the old wizard versus our new wizard:

  Time Spent (sec) Total Clicks
A master-detail report with a summary
Old Wizard (v18.2 and earlier) 00:45 27
New Wizard (v19.1) 00:35 22
A table report with a color scheme
Old Wizard (v18.2 and earlier) 00:22 13
New Wizard (v19.1) 00:17 10

Improved Navigation Model

Standard app wizards do not offer an easy way to navigate between individual steps. If a user makes a mistake, forgets to apply a setting, or does not add the appropriate data source column, he or she must use the "Back" button to find and correct errors made in earlier steps. While this is certainly not the end of the world, it can cause unnecessary frustration and waste valuable time.

To overcome the issue, we chose to include a left navigation bar within the wizard. Your end-users can now navigate to a desired wizard page without unnecessary button clicks.

DevExpress Web Report Wizard - Navigation

Though this may seem like a minor improvement, the net result serves our ultimate aim – reduce the number of clicks and increase overall productivity when using the Report Wizard.

DevExpress Web Report Wizard - Navigation

User Experience Enhancements

During our redesign, we noticed a few usability issues related to our "Add Grouping" and "Add Sorting" Report Wizard pages. In our previous implementation, these pages contained a drop-down list of detail reports and a list of groups and summaries positioned below. Unfortunately, this implementation did not provide enough information to the end user and required users to change selection to add/remove a summary function or a group for a given report or its detail reports.

DevExpress Web Report Wizard - User Experience

We redesigned both these pages, so they now appear as a listbox with two panes: a report name is displayed on the left and a grouping/sorting section with relevant properties is displayed on the right:

DevExpress Web Report Wizard - User Experience

As these images help illustrate, our new approach should improve overall usability.

Your Feedback Counts

We think our new design improves overall usability and addresses a number of important navigation issues. Of course, your opinion is what counts most. Please tell us what you think of the changes described above:

Additional Changes to our Report Wizard

  1. The Report Wizard now allows you to create Vertical reports.
  2. JSON Data Source is now avaialble in the Data Source Wizard.
  3. You can now customize individual Report Wizard pages via our Customization API (you can find examples here). We expect to write documentation for all customization options in the near future.

Backward Compatible

If you prefer our old Report Wizard and don’t want to switch to our new design, please use the following option going forward:

protected void Page_Load(object sender, EventArgs e) {
    ASPxReportDesigner1.SettingsWizard.UseFullscreenWizard = false;
    //...
}

If using ASP.NET MVC and Core:

@(Html.DevExpress().ReportDesigner("ReportDesigner")
    .Height("1000px")
    .WizardSettings(settings => { settings.UseFullscreenWizard = false; })
    .Bind(Model)
)

If using a JavaScript-based framework like Angular:

public object GetReportDesignerModel(string reportUrl) {
    var generator = new ReportDesignerClientSideModelGenerator(HttpContext.RequestServices);
    var model = generator.GetModel(reportUrl, null/*DataSources*/, "/DXXRD", "/DXXRDV", "/DXXQB");
    model.WizardSettings.UseFullscreenWizard = false;
    var modelJson = generator.GetJsonModelScript(model);
    return Content(modelJson, System.Net.Mime.MediaTypeNames.Application.Json);
}

Fullscreen Mode for Web Report Designer

We have some good news for those of you who incorporate our Web Report Designer into a container within a web application. Our next update, (v19.1.4) will include a “full screen mode” option in the Web Report Designer toolbar:

DevExpress Web Report Wizard - Full Screen

Future Plans – Your Feedback is Important

We hope to enhance the Web Report Designer further and to focus our energies on its toolbar and the properties panel. One of our ideas is to replace the toolbar with a compact ribbon similar to that used in our ASP.NET Core Rich Text Editor component:

DevExpress Web Report Wizard - Compact Ribbon

We'd like to hide the Actions panel and move its items to ribbon tabs (which will be control-specific, and selection driven - Action panel items replicate report control smart tags you will have seen in our Visual Studio Report Designer):

DevExpress Web Report Wizard - Actions Panel

Blog Post: ASP.NET MVC Case Study - SmartWeb

$
0
0

Want to see how other developers use DevExpress products?

If so, we’ve published a short case study that details how Escola Pinheiro (a K-12 school in Brazil) used our ASP.NET MVC controls to build SmartWeb. SmartWeb gives students, parents, and teachers a platform through which to communicate grades, reports, schedules and upcoming homework assignments.

SmartWeb Case Study

Do You Have a Story to Share?

We'd love to publish your story on our website. It doesn’t matter if the project is big or small, or which DevExpress tools you used. Fill out this simple case study form and email us at clientservices@devexpress.com.


Blog Post: DevExtreme - HTML Editor - Resizing Media Blocks (v19.1)

$
0
0

We only recently released our DevExtreme HTML Editor and while it is already working good, we're still improving it.

In our v18.2 release we added support for images and media files but without the possibility to visually resize them.

In v19.1 we've added support for this and the nice thing is that you can specify a number of options on the resize behaviour.

First you can decide to enable or disable the resizing, and second you can specify which targets are allowed to be resized.

mediaResizing: { 
    enabled: true, // enables resizing   
    allowedTargets: ["images"] // specifies resizable media types 
}                 

How does it work?

Given the fact that you have enabled the resizing feature as mentioned above, once you click an image, a resizing frame and the grab-handles appear which enables you to resize the object.

And how does it work on a mobile device?

Since DevExtreme controls should work great on any device, when using this feature on a mobile device, we'll adjust the handles and make them bigger so you can resize with your finger.

Limitations and future plans?

The resizing functionality at this stage can only be applied on images. We're currently working on resizing video blocks as well.

Another thing we are working on is the ability to keep the aspect ratio of the media block which is currently being resized.

Try it out?

If you're ready to test this feature, just download and install the current v19.1 release or use NPM to add DevExtreme to your project

npm install --save devextreme@19.1-latest

What do you think?

Let me know what you think of this feature by replying on this post.

Blog Post: DevExpress UI for Blazor - Developer Diary and Preview 10 (Now Available)

$
0
0

The following is a brief summary of changes made to our Blazor product line over the last few weeks.

If you’ve not yet reviewed our Blazor product line, please be certain to check out our Blazor Components webpage. If you are new to Blazor, feel free to review our 4-part Blazor training videos on YouTube.

DevExpress Blazor - Pivot Grid

What's New

After releasing Preview 7, we've added new features and fixed bugs in the following releases:

Preview 8

For this release, we focused on the following Data Grid Enhancements:

Cascading combo boxes that can be used in the cell's Edit Template

Support for Edit Form templates:

DevExpress Blazor - Grid Edit Form Template

Implemented Validation for default Edit Form editors

DevExpress Blazor - Form Validation

Fixed issues

The NullReferenceException occurs after you cancel new row editing.

Preview 9

We addressed the following issue in the Blazor framework:

[Blazor] onclick event no working on some element in iPhone browser. #10725

This issue affected our Data Grid and ComboBox editors as they would not always respond to the onClick event in iPhone Safari browsers.

Note, this Blazor issue is still not resolved. I recommend testing your other UI elements of your Blazor application and make sure they work correctly on iOS devices. You can use TestCafe Studio to create functional tests and catch these types of issues. Learn more here.

We also fixed the following issue: a NullReferenceException occurrs when the FormLayout component is bound to a Model with null values or Data Grid editors are empty (i.e., contain a null value).

Preview 10

We added support for Blazor Preview 6. No Breaking Changes were introduced.

Demos

Test the updated demos online here: DevExpress Blazor Themes - Online Demo

Download the Preview from NuGet

The recent version is available using the following DevExpress NuGet Early Access feed:

https://nuget.devexpress.com/early-access/api

If you are a new user, please refer to this article to learn more about how you can get started with Blazor today.

This preview is made available under the DevExpress Blazor UI license. To gain access to the build free of charge, you will need a DevExpress.com account. You can create a free account to test our NuGet package and can get a free 30-day trial of all our components too.

Watch the Webinar

Your Feedback Matters

Please take a moment to answer the following questions and tell us more about your long-term web development plans?

Blog Post: Office File API – .NET Core (Beta, v19.1)

$
0
0

We’re happy to announce the immediate availability of the DevExpress Office File API library for .NET Core (Beta 1).

With our Office File API for .NET Core, you can create web, console and desktop applications that run across multiple platforms (Windows, Mac, and Linux). Create, load, edit and export rich-text documents and spreadsheets, generate and modify PDF files, and convert different units of measurement for all projects that target .NET Standard 2.0+ / .NET Core 2.1+ platforms.

Primary Features

The DevExpress Office File API for .NET Core allows you to address multiple document-processing requirements:

  • Convert documents to various file formats (Word, Excel, PDF, and HTML). Convert PDF documents to multi-page TIFF.
  • Use mail merge to automatically generate a batch of documents (workbooks or text documents) based on a single document template.
  • Merge documents, workbooks or PDF files into a single file. Split a document or extract its content into multiple files.
  • Protect workbooks, text documents and PDF files. Encrypt your documents with a password and lock-down PDF files by using a digital signature.

Please review our online demo to learn more about common usage scenarios or check out documentation for a complete feature list and additional information.

Try It Now

Visit nuget.devexpress.com to obtain DevExpress NuGet feed URL and install the Office File API packages.

The DevExpress.Document.Processor package includes all Office File API products. Register your DevExpress NuGet feed as a package source and install this package from the Visual Studio's NuGet Package Manager.

If you already have our Office File API components installed on your machine, you can obtain this package from the DevExpress Local package source in the NuGet Package Manager.

Important Note: To use this package in production code, you will need an active license for the DevExpress Office File API Subscription or the DevExpress Universal Subscription.

If you own a license to any other DevExpress subscription, you can install one of the following DevExpress packages to process rich-text documents and generate spreadsheets within your .NET Core application:

These packages are not available in the NuGet Package Manager dialog, but you can install them from the Package Manager console, dotnet CLI, or NuGet CLI.

We have prepared simple examples that demonstrate how to use our Office File API components in your .NET Core application.

Word Processing Document API

Convert a DOCX document to PDF:

using DevExpress.XtraRichEdit;
// ...
RichEditDocumentServer documentProcessor = new RichEditDocumentServer();
// Load a document from a file.
documentProcessor.LoadDocument("Document.docx", DocumentFormat.OpenXml);
// Export the document to PDF.
documentProcessor.ExportToPdf("PdfDocument.pdf");

Spreadsheet Document API

Convert a spreadsheet document to PDF:

using DevExpress.Spreadsheet;
// ...
Workbook workbook = new Workbook();
// Load a document from a file.
workbook.LoadDocument("Document.xlsx", DocumentFormat.Xlsx);
// Export the document to PDF.
workbook.ExportToPdf("PdfDocument.pdf");

PDF Document API

Merge two PDF files into a single document:

using DevExpress.Pdf;
// ...
using (PdfDocumentProcessor pdfProcessor = new PdfDocumentProcessor())
{
   // Create an empty document. 
   pdfProcessor.CreateEmptyDocument("Result.pdf");
   // Append the first PDF file to the created document.
   pdfProcessor.AppendDocument("Document1.pdf");
   // Append the second PDF file to the created document.
   pdfProcessor.AppendDocument("Document2.pdf");
}

Limitations

The following features are currently unavailable (these features are available in our Office File API version for .NET Framework):

  • Ability to print PDF files or export PDF content to an image (Linux and macOS).
  • All PDF features related to DirectX rendering (all operating systems):
    • Stroke and Clip rendering modes
    • Advanced transparency and blend modes
    • CJK fonts support
  • Embedded font support for PDF export (Linux and macOS).

What Do You Think?

As always, we are interested in your feedback. Please feel free to leave comments below or open Support Center ticket. In addition, we would appreciate your responses to this quick survey:

Blog Post: WinForms - Picture Edit - Image Editor Dialog (v19.1)

$
0
0

Using the WinForms PictureEdit control, you can display images on your forms. Not long ago we implemented DirectX rendering support for the control, so that large high-DPI images are handled easily. For v19.1 we added another new feature: an embedded Image Editor dialog.

To bring up this dialog users can right-click an image and select Edit. The operations supported by the Editor are simple but useful: crop, rotate, flip, and changes to brightness, contrast and saturation values.

Note that the option ShowEditMenuItem disables access to the editor when it’s set to False.

Image Editor

When the user clicks the Save button in the Image Editor, the event ImageEditorDialogClosed is raised, so you can implement custom change handling as required.

Custom Actions

We anticipate that you may have custom requirements for image editing operations, so we made the Image Editor extensible. You can add additional commands to the editor in a handler for the event ImageEditorDialogShowing, which appear as buttons in the UI. Commands are classes that implement a simple interface and execute your own editing functionality, possibly using your own UI elements.

1
2
3
4
5
6
7
8
9
publicclassWatermarkCommand : IGraphicCommand {
publicSvgImageImage { get; set; }
publicstringToolTip {
get { return"Add Watermark"; }
}
publicvoidExecute(ImageEditorControleditorControl) {
editorControl.SetActiveTool(newWatermarkToolControl());
}
}

Watermark

The watermark feature shown in the image is fully implemented in this GitHub example, which is a great starting point for your own custom Image Editor actions. It demonstrates a custom button that invokes a dialog where users can add text-based watermarks to an image.

What Do You Think?

Please let us know any thoughts you have about this new feature. We are particularly interested to hear your ideas for additional editor actions – we would like to implement more common actions and reduce the need for custom additions. Please leave your comments below and let us know.

Blog Post: DevExpress VCL Subscription v19.1 released

$
0
0

We are proud to announce the immediate availability of DevExpress VCL Subscription v19.1, our suite of controls for building Windows apps with RAD Studio, using either Delphi or C++Builder. This release ships with numerous new features including:

  • Right-to-Left layout support for Ribbon, Pivot Grid, Vertical Grid, Menus, and Wizard
  • Excel-Inspired Filtering UI in Grid, TreeList, and Vertical Grid
  • Office 2019 Ribbon Style
  • Major updates to the Flow Chart Control
  • New Office 2019 Vector Skin
  • PDF Viewer: Attachment and Text Markup Annotations

To celebrate this release, I presented a webinar yesterday to show off all this and more. If you missed it live, it’s now available on YouTube.

At the end of the webinar we had a Q&A session, some questions being ably answered by the team in the background (Thanks, guys!), and some more clumsily by me. I repeat here what I said at the time: if you have a suggestion, please let us know by writing to support@devexpress.com. We appreciate getting feedback that can help us make better features and enhancements. Also, of course, by doing so you can more easily track our progress on your suggestions.

I’ve edited and listed the questions and answers here:

Q: Does the new [Excel-inspired] filtering appear automatically after re-building?
A: To turn on the new filtering UI, use the dxDefaultFilterPopupWindowMode global constant in the source code to make it active for all Grid, TreeList, and Vertical Grid controls. Or you can use the option that’s available for individual controls.

Q: Is there any possibility to add our own custom date ranges? I deal a lot with schools and would like to add an option for semesters or school years (which may begin on September 1 rather than January 1 for example).
A: Adding custom date ranges is not available at the moment. Great idea, so it is certainly worth adding a suggestion via our support center.

Q: Was hi-DPI support enhanced for themes that do not use SVG?
A: Only SVG-based ones in v19.1, others are scheduled for v19.2.

Q: With regard to your Cloud Access components, such as file access for OneDrive and Google Drive, I would like to see support added for Dropbox. (Several people asked for this.)
A: Great suggestion, please write to support@devexpress.com to notify us, and to be able to track it.

Q: Any possibility of (better / more beautiful) data visualization / charts for VCL? (Several people asked the same.)
A: A good question, one that we have discussed internally in the past and indeed do so for every release. Currently our charting features are part and parcel of our data grid, and (fairly obviously, I guess) we have an internal port where we’ve separated them. The issue then becomes one we’d have to discuss with Embarcadero since TeeChart is provided as part of the RAD Studio install.

Q: With the FlowChart control, is there an OnClick event and/or drill-down capability for the shapes within a flowchart?
A: An interesting idea, but we’d need more details on what you are trying to achieve. Please email support@devexpress.com.

…And of course, there were several variations on this last question…

Q: Any news about FMX support?
A: In essence, we have nothing concrete to announce as yet. Certainly we are working on controls for FireMonkey, mainly the data grid (this now supports master-detail, has editors for text, memo, dates, checkboxes, and supports record navigation, insertion, deletion). The issue is, as we have repeatedly discovered, FMX does not have a lot of the low-level support for UI control management that we have in VCL. Hence, we either wait for it to appear, or fudge some kind of fix. All that takes more time than we’d like.


Blog Post: ASP.NET Bootstrap - Responsive Project Template (v19.1)

$
0
0

In our v18.2 release cycle, we shipped a highly popular responsive project template for ASP.NET WebForms controls and MVC Extensions.

With our most recent release, we’ve extended the capabilities of our ASP.NET WebForms for Bootstrap suite with a similar project template. As you can see from the images below, this template allows you to create engaging and mobile-friendly apps with ease.

Desktop

DevExpress ASP.NET Bootstrap Responsive Project Template

Mobile

DevExpress ASP.NET Bootstrap Responsive Project Template

Tablet

DevExpress ASP.NET Bootstrap Responsive Project Template

The template consists of the following main elements:

  1. A header with an adaptive BootstrapToolbar control. It also contains an icon to hide the sidebar and theme switcher:

DevExpress ASP.NET Bootstrap Responsive Project Template

  1. The sidebar is generated by using predefined Bootstrap classes. It contains a BootstrapTreeView within it.

DevExpress ASP.NET Bootstrap Responsive Project Template

  1. The Overview page (Default.aspx) has a mobile-friendly dashboard-inspired layout. The page contains our most popular Bootstrap controls: BootstrapGridView, BootstrapCardView, BootstrapSchedulerDateNavigator, BootstrapScheduler, BootstrapChart.

DevExpress ASP.NET Bootstrap Responsive Project Template

All controls are placed in adaptive containers: UserControls you can find in the 'UserControls' subfolder.

  1. The 'Tasks data table' (TasksDataTable.aspx) page contains an adaptive BootstrapGridView. The grid has an additional toolbar whose content is based on the selection made within the main toolbar.

DevExpress ASP.NET Bootstrap Responsive Project Template

  1. The 'Event scheduling' (EventScheduling.aspx) page demonstrates stand-alone controls: BootstrapScheduler, BootstrapSchedulerDateNavigator and BootstrapListBox.

DevExpress ASP.NET Bootstrap Responsive Project Template

For more information, please review the project template’s content in our online demo:

https://demos.devexpress.com/RWA/BootstrapResponsiveTemplate/

You can find the new responsive project template in the DevExpress project template gallery:

DevExpress ASP.NET Bootstrap Responsive Project Template

Your Feedback is Welcome

We’d love to hear what you think:

Blog Post: DevExtreme - New Drop Down Button (v19.1)

$
0
0

As you may already know, our most recent release includes a new DropDownButton widget - an action button that activates a drop-down menu when clicked.

DevExtreme Drop Down Button

At first glance, this new DropDownButton may seem similar to our existing SelectBox widget. However, SelectBox is an editor with different visual elements.

You can use the new DevExtreme DropDownButton widget across multiple usage scenarios, including:

Simple Drop-Down Menu

The most common usage scenario for this widget is to create a simple dropdown menu that can be activated with a button click. While the SelectBox can be used for this as well, it is designed for selection and not for navigation or actions (SelectBox requires that you add a field template with two additional icons). DropDownButton includes this usage scenario out-of-the-box:

DevExtreme DropDownButton - Drop-Down Menu

Create a simple drop-down menu with a few lines of code:

$(“#dropDownButton”).dxDropDownButton({
 text: “Download DevExtreme Trial”,
 icon: “save”,
 items: ["Trial For Visual Studio", "Trial For All Platforms", "Package Managers"],
  onItemClick: function(e){
   // perform your actions on item click
  }
});

Split Button

Another popular scenario for the DropDownButton is to use it for split or separated buttons: the first for an immediate action and the second to open/close the widget. For example, the main button can link to a user’s profile page and the second can be used to activate a menu with pre-defined options.

DevExtreme DropDownButton - Split Buttons

Use the following code to implement split buttons:

$(“#dropDownButton”).dxDropDownButton({
       items: [
          {id: 1, name: "Profile", icon: "user"},
          {id: 4, name: "Messages", icon: "email", badge: "5"},
          {id: 2, name: "Friends", icon: "group"},
          {id: 3, name: "Exit", icon: "runner"}
      ],
       splitButton: true,
       onButtonClick: function(e){
           DevExpress.ui.notify("Go to " + e.component.option("text") + "'s profile", "success", 600);
       },
       onItemClick: function(e){
           DevExpress.ui.notify(e.itemData.name, "success", 600);
       },
       text: "Sandra Johnson",
       icon: "images/gym/coach-woman.png",
       displayExpr: "name",
       keyExpr: "id",
       useSelectMode: false
});
Note: SelectBox is a flexible component and its field template can be customized with event subscriptions to address this usage scenario as well. The ultimate goal of our DropDownButton is to reduce such UI related code so you can focus your efforts on business logic.

With Custom Templates

SelectBox does not allow you to use custom content within its popup but DropDownButton does. This feature will help you create such things as custom color pickers or to place multiple widgets inside dropdown content. Use the dropDownContentTemplate if you wish to employ custom styles that differ from those we ship with the widget. If your widget contains a list, you can use an itemTemplate. This option will save you time since you need not fully customize content.

DevExtreme DropDownButton - Custom TemplatesDevExtreme DropDownButton - Custom Templates

Embed in ToolBar

DropDownButton can be easily inserted into a ToolBar (use the “text” stylingMode for this purpose). See our online demo for more information on this option.

DevExtreme DropDownButton - Toolbar

DataSource Support

Though it’s not a common usage scenario for a DropDownButton widget, you can load items from a remote data storage via the widget’s dataSource option. Our widget supports all DevExtreme data stores and works well with asynchronous data.

Test It Today

If you would like to test-drive this feature, use our npm package:

npm install --save devextreme@19.1

What do you think?

Please tell us what you think about this new widget and what additional functionality you require.

Watch the Webinar

To learn more about all JavaScript related features introduced in our v19.1 release, please watch our "New in v19.1 - DevExtreme HTML / JS Controls" webinar.


Blog Post: Spreadsheet – Breaking Change in v19.2

$
0
0

In the upcoming release of .NET Standard 2.1, Microsoft is going to introduce a new Range structure in the System namespace.

All well and good, but since our Spreadsheet API already contains the DevExpress.Spreadsheet.Range interface, you will get the following error when compiling your spreadsheet application under .NET Standard 2.1:

error CS0104: 'Range' is an ambiguous reference between 'DevExpress.Spreadsheet.Range' and 'System.Range'

Now the obvious workaround fix is to use the following code

using Range = DevExpress.Spreadsheet.Range;

but that's not going to help new customers or even you when writing new applications. Hence, in order to fix this issue properly, we've decided to rename our DevExpress.Spreadsheet.Range interface to DevExpress.Spreadsheet.CellRange in the next major release, v19.2. This change will affect all DevExpress Spreadsheet products:

Once v19.2 has been released and you have upgraded to it, you will need to update your projects to use the CellRange name.

Blog Post: DevExpress at DeveloperWeek Nuremberg

$
0
0

This week, DevExpress is sponsoring the DWX DeveloperWeek Nuremberg, Germany. John and I will be there with our cool “I’d rather be coding” T-Shirts and other giveaways.

I will do a session as well on Generics and abstract classes in C#.

On our daily raffles you could win one of the DevExpress backpacks or even a Platform Subscription of choice!

Make sure to visit our booth to find out what’s new in our v19.1 release and grab a T-Shirt.

Blog Post: Blazor Roadmap – What You Can Expect in the Next Few Months from DevExpress

$
0
0

Here’s a quick post on our upcoming development plans for Blazor. We expect to publish blog posts on each of these Blazor components in the next couple of months.

If you’re targeting Blazor for an upcoming project and would like to participate in our beta (August, 2019), please send an email to support@devexpress.com.

DevExpress-Blazor-Roadmap

New Blazor UI components

Products we expect to ship by Sept, 2019:

  • Scheduler
  • Charts
  • Popup control (modal mode only)
  • Toolbar
  • Popup menu
  • Calendar
  • TreeView
  • ListBox

Updated Blazor UI components

New features we expect to add to our existing Blazor product line:

Data Grid

  • Grouping
  • Filter enhancements
  • Multiple row selection
  • Virtual Scrolling
  • Master-detail support

Combo Box

  • Filtering support
  • Multiple column support
  • Custom values support

Should you have any questions, please feel free to comment below.

Blog Post: JavaScript Charts & Gauges - Legend Customization, Label Word-Wrap, and Other Enhancements (v19.1)

$
0
0

Thanks to great feedback from users such as yourself, we’ve extended the capabilities of our JavaScript Chart and Gauge widgets with the following new features (v19.1).

Legend

  • Customize Legend Items - Use the new legend.customizeItems callback to change the order, text, and visibility of legend items.

DevExtreme Charts Legend Customization

Demo

  • Legend Title - A legend title can now be specified and configured using the legend.title option. You can customize the title's appearance and its position. You can also add a subtitle as needed. This new option includes the same capabilities as the widget's root title option.

  • Legend in BarGauge - Our BarGauge widget can now display a legend.

Demo

DevExtreme - Legend in BarGauge

Demo

Word-wrap

In v19.1, we added the wordWrap and textOverflow options to enable word-wrap within the Title and Chart axis, PieChart, Funnel, and TreeMap labels.

DevExtreme Charts Word Wrap

These options are similar to CSS word-wrap and text-overflow properties. Refer to the following two help topics for more information: wordWrap and textOverflow.

Note: A minor breaking change was introduced when we created this feature. To learn more, please review the following article: BC4997 - Long Titles and Chart axis, PieChart, Funnel, and TreeMap labels can now be wrapped

Other features

  • Display a tooltip only when a point is hovered:

DevExtreme Charts Tooltip

Documentation - Demo

  • Overlapped Bars - This feature allows you to create a TimeLine chart or an Overlapped Bar chart.

DevExtreme Charts Overlapped Bars

Documentation - Demo

  • Manage exported chart layout (layout by columns, etc.)

Documentation - Demo

Angular, Vue, React, ASP.NET MVC / Core and more

As you know, DevExtreme supports multiple web development frameworks. All enhancements described herein are available for:Angular, Vue, React, jQuery, Knockout, ASP.NET MVC and .NET Core.

Watch the Webinar

To learn more about all JavaScript related features introduced in our v19.1 release, please watch our "New in v19.1 - DevExtreme HTML / JS Controls" webinar.

Test It Now (and provide feedback)

Test-drive the public release now. Use the npm package:

npm install --save devextreme@19.1

We’d love to hear from you – please tell us what you think about these enhancements below.

Blog Post: What's new in v19.1 WinForms - Q&A

$
0
0
In our recent "What's New for WinForms" webinar we received a large number of questions, some of which we were unable to get to during the live Q&A. As promised, I'm listing each of the questions with their respective answer below.  
General:
Q: How can I change "And" to "Or" filtering across two columns? 
A: You can do this by clicking the EditFilter button in the Filter Panel and modify logical operators as your needs dictate in the Filter Editor see: https://documentation.devexpress.com/WindowsForms/1424/Controls-and-Libraries/Data-Grid/Visual-Elements/View-Common-Elements/Filter-Panel

Q: Is v19.1 Per-Monitor DPI-Aware?  
A: At present, our components support only System–DPI awareness. I would recommend you review the High DPI Support help article to learn how to enable dpi-awareness for our controls. We are now researching possible ways to support Per-Monitor DPI-Awareness in our controls and will do our best to support the Per-Monitor mode in the future. https://documentation.devexpress.com/WindowsForms/116666/Common-Features/High-DPI-Support

Q: The shown 'SearchBar' in the RibbonDemo to find commands... is this only available for Ribbons?  
A: Yes, it is available in RibbonControl only.

Q: Is there a way to do rounded corners easily? I know we can do it in skin editor but it is not easy and fast for all controls
A: Our components don’t provide a way to make them have round corners. Would you please describe your scenario in greater detail? A couple of images demonstrating the expected result would allow us to better understand all possible areas where this feature can be used. 

Q: on the grid animation, what datasoure is supported?
A: The animation doesn’t depend on a data source. GridView tracks a cell value changing and performs animation. So you can use any supported source including Server Mode. I would recommend you review Traditional Data Binding Methods and Large Data Sources: Server and Instant Feedback Modes for a complete list. https://documentation.devexpress.com/WindowsForms/2385/Common-Features/Data-Binding-Common-Concepts/Traditional-Data-Binding-Methods

Q: Can we convert normal Layout to Table Layout ?
A: While we don’t provide a tool to migrate a regular layout to the table one with TablePanels, you can convert it to a Layout Control in your project as described in Converting a Regular Layout of Controls to an XtraLayoutControl. Then invoke the Convert to Table Layout command as shown in the Table Layout documentation.

Q: Any benchmarking available on DirectX rendering performance?
A: There are no benchmarks available, however, you can see that DirectX already gives you noticeable performance improvements and we will continue working in this direction to make  faster.

Q: Are you going to add an Office 2019 Black theme. I'm using the Office 2019 Colorful theme in my app but want to offer users a black theme. If I use the Office 2016 Black theme, it uses the older style ribbon with the visible tabs.
A: Yes, we have plans to introduce new Office 2019 skins in v19.2.

Q: Where can I see a list of the other demo's

A: All our demos are available from Demo Center. To launch it, click the "Demo Center 19.1" shortcut in Windows Start Menu. You can learn more about the Demo Applications here https://documentation.devexpress.com/WindowsForms/14962/What-s-Installed/Demo-Applications


Q: Any project templates for Microsoft teams in future? 
A: Currently our components don’t provide such templates. But we found this idea interesting and will consider adding such templates in the future.

Q: Can we use these controls in C++ managed code? or these are valid only for C# and VB?  
A: Yes, you can. Our components should work flawlessly in this environment, though the application development process may differ.

Q: Besides Google, that other services I can connect to XtraScheduler
A: Along with the Google Calendars, our SchedulerControl also supports Synchronization with Microsoft Outlook and provides iCalendar Support. Please refer to the Import and Export article for additional information.

Q: Layout control, if I want to move my content in the center of the form, how to do it ? 
A: You can use the new Table Panel for this. 

Q: Will the Image Edit control support the WEBP file format?
A: While we don't have immediate plans to support it this format, you can convert a WEBP image to a regular image (for instance, to jpg) using a third-party library and then display this image in the PictureEdit control. 

Q: Is there any news on a scheduler annual view?
A: We will consider implementing this view in the future versions of our components.

Q: This function is only for the Control "Excel Style Filtering" ? its possible to use in ChartControl or GridControl? 
A: Excel Style filtering dropdown menus are part of our data aware controls (GridControl, TreeList etc). To be able to use custom functions in your application, it is necessary to register them using the CriteriaOperator.RegisterCustomFunction method. I would recommend your review Implementing Custom Functions for additional details.

To add a custom function to the GridControl’s Excel Style filtering dropdown menu, enable the GridView.OptionsFilter.ShowCustomFunctions property and handle the GridView.QueryCustomFunctions event. http://newdoc.devexpress.devx/WindowsForms/DevExpress.XtraGrid.Views.Base.ColumnViewOptionsFilter.ShowCustomFunctions?v=19.1
http://newdoc.devexpress.devx/WindowsForms/DevExpress.XtraGrid.Views.Base.ColumnView.QueryCustomFunctions?v=19.1

As for the ChartControl, once the custom functions are registered, you can use it for filtering. For instance, your can build a required filter criteria and assign it the SeriesBase.FilterCriteria property. Alternatively, you can add a separate 
FilterControl, connect it to ChartControl. Then enable the FilterControl.ShowCustomFunctions option and handle the FilterControl.QueryCustomFunctions event to add your custom functions.

Q: Will Borders and Shading API in RichEditControl be supported?
A: This is something we may look at in the future.

Q: When will you add a true PDF editor?
A: Our last survey for desktop platforms showed that it is not very popular suggestion. We do however have a non-visual PDF document API library which allows modify PDF documents:
 
Q: what about spell checker? for example: can I install it for Georgian language?
A: Customer can use any dictionaries for spell checking. Information about adding dictionaries are here:

Q: I thinks its a good idea the conditional formats in excel viewer in devexpress.
A: Our Spreadsheet control supports conditional formatting.

Q: It's possible to use functions in XtraSpreadSheet? but all functions like excel? for example, search, indirect, sum, and others?
A: Yes, it possible.
 
In upcoming v19.1 release we added support for Excel 2016 functions: CONCAT, TEXTJOIN, IFS, SWITCH, MAXIFS and MINIFS.
 
 
Most of Excel functions are currently supported.

Q: Spreadsheet: Is there a automatic internal Zoom-Object now included?
A: If you are referring to the zoom control in status bar, it is not a part of the Spreadsheet control, however, we demonstrate ability to implement this control in our ‘First Look’ demo (first demo for the Spreadsheet Control)

Diagram Control:

Q: Good Job, but the Editor SVG Icon is not funcionally that all for custom Shapes in DiagramControl that planing best the editor in some version for support this funcionallity?
A: If you mean SVG Icon Builder, we don't have plans to extend it to a fully-functional SVG editor or incorporate into DiagramControl. You can use an arbitrary SVG editor and import an SVG image to DiagramControl as described at SVG Shapes. Note that there are certain limitations mentioned in that topic which should be considered when importing SVG images to DiagramControl

Analytics:

Q: In winforms -  chartControl have a new updates? 
A: Yes, ChartControl has a set of new features.  They were also covered in the Analytics webinar (5/16)

https://www.devexpress.com/Subscriptions/New-2019-1.xml#xtracharts


Q: Looking forward to more speed improvements in map rendering of tiles and vector layers with large map items.
A: According to our tests, MapControl renders tiles and vector items at appropriate speed in most common scenarios. If you find the rendering performance too slow in your scenario, please submit a ticket in Support Center and describe your use case in greater detail. We will check if there is a room for improvements.

Q: Hello, I would like to know if in this version you can already assign the colors to the graphics in the dashboard in runtime execution
A: The Dashboard Suite allows you to customize chart colors using the Coloring feature. If you need to customize default colors in the dashboard palette at runtime, handle the CustomPalette event.

Q: I think is a good idea use this skin in Graphis with chart control
A: While the ChartControl appearance depends on the current application theme, ChartControl also uses a set of its own appearance schemas


Viewing all 3388 articles
Browse latest View live