Unplanned
Last Updated: 05 Aug 2022 09:24 by Troy
Created by: Troy
Comments: 0
Category: PictureBox
Type: Feature Request
2

Currently, SVG files that have filter tags in their XML are not respected by the RadPictureBox control. Sample code:

<filter ..>
  <feGaussianBlur .. />
  <feMorphology .. />
  <feGaussianBlur .. />
  <feColorMatrix .. />
  <feComposite .. />
  <feGaussianBlur .. />
  <feDiffuseLighting ...>
	<feDistantLight ... />
  </feDiffuseLighting>
  <feBlend .. />
  <feComposite ../>
  <feSpecularLighting ...>
	<feDistantLight ../>
  </feSpecularLighting>
  <feComposite .. />
</filter>

 

Completed
Last Updated: 12 Aug 2022 10:12 by ADMIN
Release R2 2021

Steps to reproduce:

1. Copy an image with a transparent background to the Clipboard

2. Paste it in RadPictureBox.

As a result you will notice that the transparency is lost.

Note: it is possible to handle clicking the Paste menu item and control what image exactly to be pasted:

        public RadForm1()
        {
            InitializeComponent(); 

            this.radPictureBox1.ContextMenuItemClick += RadPictureBox1_ContextMenuItemClick;
        }

        private void RadPictureBox1_ContextMenuItemClick(object sender, HandledEventArgs e)
        {
            if (sender == this.radPictureBox1.ContextMenuProperties.PasteItem)
            {
                e.Handled = true;
                // Image extractedImage = // get image with transparency; 
                // this.radPictureBox1.Image = extractedImage;
            }
        }

Completed
Last Updated: 01 Jun 2021 07:56 by ADMIN
Release R2 2021 SP1
Created by: Saeed
Comments: 0
Category: PictureBox
Type: Feature Request
1
Add zooming to cursor support
Completed
Last Updated: 23 Sep 2022 13:07 by ADMIN
Release R3 2022
In this particular case, we have two forms showing RadPictureBox control with a GIF file. The second form is opened on a different thread which freezes the UI.
Unplanned
Last Updated: 26 May 2023 04:45 by ADMIN
Created by: S
Comments: 1
Category: PictureBox
Type: Feature Request
1

Moving the cursor over the image would display a zoomed portion of the image located under the mouse position:

Completed
Last Updated: 17 May 2021 11:23 by ADMIN
Release R2 2021 SP1
RadPictureBox offers pan and zoom functionality. However, only the ZoomChanged event is currently available.
Completed
Last Updated: 18 Oct 2021 15:16 by ADMIN
Release R3 2021 SP1
   at System.Drawing.Graphics.CheckErrorStatus(Int32 status)
   at System.Drawing.Graphics.DrawPath(Pen pen, GraphicsPath path)
   at Telerik.WinControls.Svg.SvgRenderer.DrawPath(Pen pen, GraphicsPath path)
   at Telerik.WinControls.Svg.SvgVisualElement.RenderStroke(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgMarkerElement.RenderStroke(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgVisualElement.RenderFillAndStroke(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgVisualElement.Render(ISvgRenderer renderer, Boolean renderFilter)
   at Telerik.WinControls.Svg.SvgVisualElement.Render(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgElement.RenderChildren(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgVisualElement.Render(ISvgRenderer renderer, Boolean renderFilter)
   at Telerik.WinControls.Svg.SvgGroup.Render(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgElement.RenderChildren(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgVisualElement.Render(ISvgRenderer renderer, Boolean renderFilter)
   at Telerik.WinControls.Svg.SvgGroup.Render(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgElement.RenderChildren(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgVisualElement.Render(ISvgRenderer renderer, Boolean renderFilter)
   at Telerik.WinControls.Svg.SvgGroup.Render(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgElement.RenderChildren(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgElement.Render(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgFragment.Render(ISvgRenderer renderer)
   at Telerik.WinControls.Svg.SvgDocument.Draw(Int32 rasterWidth, Int32 rasterHeight)
   at Telerik.WinControls.RadSvgImage.GetRasterImage(Int32 width, Int32 height, Boolean cache)
   at Telerik.WinControls.Primitives.ImagePrimitiveImpl.PaintZoomSvgImage(IGraphics graphics, RadSvgImage svgImage, RectangleF rect, Single opacity, Size svgImageSize)
   at Telerik.WinControls.UI.PictureBoxCanvasElement.PaintOwnerSvgImage(IGraphics graphics)
   at Telerik.WinControls.UI.PictureBoxCanvasElement.PaintElement(IGraphics graphics, Single angle, SizeF scale)
   at Telerik.WinControls.RadElement.DoOwnPaint(IGraphics graphics, Single angle, SizeF scale)
   at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadItem.PaintOverride(IGraphics screenRadGraphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadElement.PaintChild(RadElement child, IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.VisualElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadItem.PaintOverride(IGraphics screenRadGraphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadElement.PaintChild(RadElement child, IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.VisualElement.PaintChildren(IGraphics graphics, Rectangle clipRectange, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadElement.Paint(IGraphics graphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadItem.PaintOverride(IGraphics screenRadGraphics, Rectangle clipRectangle, Single angle, SizeF scale, Boolean useRelativeTransformation)
   at Telerik.WinControls.RadControl.OnPaint(PaintEventArgs e)
   at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
   at System.Windows.Forms.Control.WmPaint(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at Telerik.WinControls.RadControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Completed
Last Updated: 20 Apr 2022 09:23 by ADMIN
Release R2 2022
Created by: Travis
Comments: 1
Category: PictureBox
Type: Feature Request
0

Currently, RadPictureBox supports the gif format, but the animated gifs are not animated like the standard MS PictureBox.

Workaround: use a RadLabel to show the animated gif:

this.radLabel1.LabelElement.Image = Properties.Resources.giphy;

 

Completed
Last Updated: 23 Sep 2022 13:07 by ADMIN
Release R3 2022
The newly loaded GIF file is not animated after ClearImage() method is called before that.
Unplanned
Last Updated: 18 Dec 2023 11:49 by Sean

Currently, SVG image blurs for example when "opacity:0.2995 (...)" See below image:

Completed
Last Updated: 13 Mar 2024 08:49 by ADMIN
Release 2024.1.312
When using the picturebox on a monitor that is not on 100% scaling, the zooming and panning does not work correctly. 
Unplanned
Last Updated: 30 Jan 2025 10:31 by ADMIN
Created by: Alok Tibrewal
Comments: 1
Category: PictureBox
Type: Feature Request
0
 
Unplanned
Last Updated: 20 May 2025 08:47 by ADMIN
Created by: Pascal
Comments: 1
Category: PictureBox
Type: Feature Request
0

Add a call to "OnImageLoaded" to "RadPictureBoxelement.PasteImage()" method or create an event like "ImagePasted" ot be able to tract an image change at this point.

For me I solved this via an Harmony patch that adds a call to OnImageLoaded() on PasteImage()  long time ago. Not really elegant, but I'm a noob in patching with Harmony.

Just want to leave it here for anyone that want ot use this solution too or for Telerik to implement a native way to expose an image change via PasteImage.

[HarmonyPatch(typeof(RadPictureBoxElement))]
[HarmonyPatch("PasteImage")]
public class RadPictureBoxElement_PasteImageFixes
{
    private static readonly Dictionary<RadPictureBoxElement, Image> images = [];

    public static void Prefix(object __instance)
    {
        if (__instance is RadPictureBoxElement pb)
        {
            // Remember our image
            images.Remove(pb);
            images.Add(pb, pb.Image);
        }
    }

    public static void Postfix(object __instance)
    {
        if (__instance is RadPictureBoxElement pb && images.TryGetValue(pb, out var image) && pb.Image != image)
        {
            // Remove first to avoid conflicts on error
            images.Remove(pb);

            // Call "OnImageLoaded"
            var method = typeof(RadPictureBoxElement).GetMethod("OnImageLoaded", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
            method.Invoke(pb, null);
        }
    }
}