See attached to reproduce.
Workaround:
class MyImageEditor : RadImageEditor
{
protected override RadImageEditorElement CreateImageEditorElement()
{
return new MyImageEditorElement();
}
}
class MyImageEditorElement : RadImageEditorElement
{
protected override ImageEditorCanvasElement CreateCanvasElement()
{
return new MyCanvasElement(this);
}
}
class MyCanvasElement : ImageEditorCanvasElement
{
public MyCanvasElement(RadImageEditorElement owner) : base(owner)
{
}
protected override void PaintElement(IGraphics graphics, float angle, SizeF scale)
{
base.PaintElement(graphics, angle, scale);
if (this.IsCropping)
{
Rectangle dynamicCropRect = GetCropRectangle();
SizeF scaleDown = new SizeF(1f / this.DpiScaleFactor.Width, 1f / this.DpiScaleFactor.Height);
this.AcceptButton.PositionOffset = TelerikDpiHelper.ScaleSizeF(new SizeF((dynamicCropRect.X + dynamicCropRect.Width / 2f) - this.AcceptButton.Location.X - this.AcceptButton.DesiredSize.Width,
dynamicCropRect.Y + dynamicCropRect.Height - (this.AcceptButton.DesiredSize.Height + 10)), scaleDown);
this.CancelButton.PositionOffset = TelerikDpiHelper.ScaleSizeF(new SizeF((dynamicCropRect.X + dynamicCropRect.Width / 2f) - this.CancelButton.Location.X - this.CancelButton.DesiredSize.Width,
(dynamicCropRect.Y + dynamicCropRect.Height - (this.CancelButton.DesiredSize.Height + 10)) - this.CancelButton.Location.Y), scaleDown);
}
}
}