With high DPI display support, application interfaces appear sharper, but bitmap image formats such as BMP, JPG, and PNG can become blurry when scaled. Therefore, this release supports the SVG (Scalable Vector Graphics) format to ensure images remain crisp across different resolutions and DPI settings.
-
The picture controls (including Picture, PictureButton, PictureHyperlink, PictureListBox, and DropDownPictureListBox), Menu, ListView, TreeView, TabPage, DataWindow, and RibbonBar support using the SVG image.
-
In the "Select Image" dialog on the property panel, you can choose "Use a custom image" and then select an SVG image file.
Note
The built-in images provided by PowerBuilder are NOT SVG format. You can replace them with the SVG images prepared by yourself if you want to display them clearly under high DPI displays.

-
If
OriginalSizeis checked, the control size automatically matches the original dimensions of the SVG file; if unchecked, the control keeps its existing size. -
The following runtime file is required for SVG image to work: pbsvg.dll.
Theme for SVG
The following new themes are introduced to ensure the UI elements remain sharp and clear under high DPI displays, preventing image blurring.
-
Flat Design Blue (SVG) -- enhances the Flat Design Blue style by using scalable SVG graphics.
-
Flat Design Dark (SVG) -- enhances the Flat Design Dark style by using scalable SVG graphics.
You can apply this theme by calling the ApplyTheme
function.
Supported and unsupported features
The SVG support in PowerBuilder is implemented using the open-source Skia graphics library, which provides partial compliance with the SVG 1.1 and SVG 2.0 specifications.
The supported SVG features include:
-
Basic shapes: <circle>, <ellipse>, <line>, <polygon>, <polyline>, <path>, <rect>
-
Text elements: <text>, <textPath>, <tspan>
-
Structural elements: <g>, <use>, <defs>
-
Gradients and patterns: <linearGradient>, <radialGradient>, <stop>, <pattern>
-
Filter effects: <filter> with primitives like <feGaussianBlur>, <feColorMatrix>, <feMerge>, <feOffset>, <feTurbulence>, and lighting effects
-
Masking and clipping: <mask>, <clipPath>
Each element supports commonly used attributes such as fill, stroke, stroke-width, positioning, and transformation.
Because the implementation is based on Skia, any SVG elements or attributes not supported by Skia are also not supported in PowerBuilder.
The unsupported SVG features include:
-
Fill and gradients
fill="transparent" is not supported; use fill="none" or fill="rgba(0,0,0,0) instead.
Incomplete support for gradientUnits="userSpaceOnUse".
-
Filters and effects
Advanced filters such as <filter>, <feGaussianBlur>, <feColorMatrix>, lighting effects, etc.
-
Interactivity and animation
JavaScript events (onclick, onmouseover, etc.).
<animate> and <animateTransform> animations.
-
Text and fonts
<textPath> for text along a path.
Embedded SVG fonts (<font>, <glyph>).
-
Clipping and masking
Complex use of <clipPath> and <mask>.
-
External references
External resources via xlink:href (e.g., linked CSS).
<image> referencing external images.
<foreignObject> embedding non-SVG content.
Some advanced <defs> elements (inline styles, CDATA).
Limitations
Despite the added support, there are several important limitations:
-
Not all built-in control images have been converted to SVG format; as a result, some built-in control images may still appear blurry under high DPI displays.
-
Unsupported features
The icon property of Application and Window objects does not support SVG.
DataWindow OLE objects, large binary/text database OLE objects, and large binary/text database BLOB objects do not support SVG.
The SVG image will not appear dimmed or grayed out when the control is disabled (it always appears in normal color no matter the control is enabled or disabled).
-
PDF export and print
When using NativePDF export, SVG images are converted to bitmap format. Features like resolution-independent scaling are not preserved.
Similarly, when using the PDFDocument object to export SVG images, they are converted to bitmap output.
Although SVG images display correctly in Window and DataWindow controls, printing does not preserve the original vector properties. SVG images are rendered as bitmaps, meaning they lose scalability and may not maintain quality when zoomed.


