DevExpress.Drawing Graphics Library
- 2 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:
- XAF - Cross-Platform .NET App UI
- .NET App Security & Web API Service
- XPO - ORM Library
- 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+) for Windows Environments
The DevExpress.Drawing library automatically enables the GDI+ engine. No additional references or actions are required.
Warning
Normally, you must not use the SkiaSharp-based engine on Windows, because the GDI+ engine is automatically used by default. The only rare and advanced usage scenario to enable the SkiaSharp-based engine on Windows, is when your app ran out of the available desktop heap or hit the quota of 10K GDI handlers per process. For instance, this may happen when a DevExpress report contains multiple complex XRRichText
components (due to USER32 kernel objects we create to draw content or measure text using Windows GDI+ API). In this case, set the Settings.DrawingEngine property to DrawingEngine.Skia to force the Skia-based rendering in your Windows-based app.
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 for non-Windows Environments
The SkiaSharp-based engine is automatically enabled for non-Windows systems - you don’t need to enable the engine manually.
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
Refer to the following article for more information on library troubleshooting:
Limitations
The following features are not available in supported products in non-Windows environments:
- Export to EMF and WMF image formats.