DevExpress.Drawing Graphics Library
- 3 minutes to read
The DevExpress.Drawing Graphics Library contains the basic drawing functionality for DevExpress components. This library ships with the DevExpress primitives, which serve as counterparts for the System.Drawing primitives (Font
, Pen
, Brush
, and so on).
The DevExpress.Drawing Graphics Library is available for the following products:
- DevExpress Reporting
- Office File API
- DevExpress BI Dashboard (export to image/PDF)
The library can utilize two drawing engines: one based on GDI+, another based on SkiaSharp. This article describes the library usage with different operating systems and frameworks, and limitations in each supported product.
Default Drawing Library Behavior (GDI+)
The DevExpress.Drawing library automatically enables the GDI+ engine. No additional references or actions are required.
System.Drawing.Common Compatibility Issues
The GDI+ engine is not compatible with the System.Drawing.Common
package version 7 and higher in non-Windows environments. If your application depends on that package, a NotSupportedException
is thrown. In this case, you need to switch the drawing engine to Skia-based render. See the following section for instructions.
Enable the SkiaSharp Drawing Engine
To enable the SkiaSharp-based engine, add the following packages to your application:
- DevExpress.Drawing
- DevExpress.Drawing.Skia (if your application uses the
System.Drawing.Common
package version 7 and higher) - Microsoft.ICU.ICU4C.Runtime
If the engine is not enabled automatically and the NotSupportedException
is thrown, call the DevExpress.Drawing.Internal.DXDrawingEngine.ForceSkia()
method to force the Skia-based rendering. Please note that this API is marked as internal and we may change it in the future.
Refer to the following article for more information on library troubleshooting:
Tip
If you use the DevExpress.Drawing
library reference instead of a NuGet package to enable the Skia engine, you may wish to add references to the following packages:
Limitations
The library ships with limitations in the products listed below:
Office File API
GDI+
The capability to print documents, workbooks, and PDF files is not available in Office File API on Linux and macOS.
Skia
The following features are not available in Office File API if you use the SkiaSharp-based drawing engine:
- The PDF Graphics subset of the PDF Document API
- Print and export shapes in Word and Spreadsheet documents
- Export PDF files to bitmap images
Reporting
GDI+
DevExpress Reporting has the following limitations if you use the GDI+ engine:
- Export to EMF and WMF image formats is not supported on Linux.
- Deserialization from CodeDOM format is not supported.
- The ImageExportOptions.Resolution property does not work in Linux- and Mac-based environments.
- Mac-based environments cannot embed fonts in exported PDF files.
Skia
The following features are not available in the Reporting tools if you use the SkiaSharp-based drawing engine:
- Server-side printing
- XRPdfContent export
- XRGauge export
BI Dashboard
Skia
The export of the following items is not available if you use the SkiaSharp-based drawing engine: