This was reported in the Code11 and Code39 symbologies.
In the old RadBarcode39 and RadBarcode11 controls the minimum width where the barcode cannot be read any longer is around 180px in the specific scenario.
In the new RadBarcode and its Code11 and Code39 symbologies, the minimum width is different - around 270px. This reproduces when the SizingMode of the symbology is set to Stretch.
To work this around, you can set the SizingMode of the symbology to Snap. Or alternatively, you can use a bigger Width value for the barcode control, and then apply a ScaleTransform to resize it to the smaller size.
private void RadBarcode_Loaded(object sender, RoutedEventArgs e)
{
var barcode = (RadBarcode)sender;
var desiredWidth = 250;
double relativeWidthDelta = desiredWidth / barcode.ActualWidth;
barcode.LayoutTransform = new ScaleTransform() { ScaleX = relativeWidthDelta };
}
The UPCE values entered in the RadBarcode control when Symbology is set to UPCE are not displayed.
To work this around use the old RadBarcodeUPCE control until this is fixed.
Implement support for Chinese symbols. Currently, if you enter the barcode Text in Chinese, the value will be coerced to to an empty string and nothing will be rendered.
Implement Intelligent Mail Barcode type.
If you change the value of the Text property of RadBarcodeQR while its Visibility is set to Collapsed and then set it back to Visible, the barcode generates a blurry image. To work this around you can call the OnApplyTemplate() method of RadBarcodeQR after you change its Visibility to Visible.
When the Background / Foreground property of the RadBarcodeQR control is set, at runtime time that property is ignored. Workaround: On loaded, change the pixel value of the ImageSource of the code in the following manner (in case the Foreground is set to a valid SolidColorBrush value): public void RadBarcodeQR_Loaded(object sender, RoutedEventArgs e) { Image image = this.ChildrenOfType<Image>().First(); ImageSource src = image.Source; Color c = ((sender as RadBarcodeQR).Foreground as SolidColorBrush).Color; image.Source = ChangePixelValue(src, c); } public static WriteableBitmap ChangePixelValue(ImageSource src, Color c) { BitmapSource originalSource = src as BitmapSource; WriteableBitmap modifiedSource = new WriteableBitmap(originalSource); int h = modifiedSource.PixelHeight; int w = modifiedSource.PixelWidth; int[] pixelData = new int[w * h]; int widthInBytes = 4 * w; modifiedSource.CopyPixels(pixelData, widthInBytes, 0); int colorInt = BitConverter.ToInt32(new byte[] { c.B, c.G, c.R, 0x00 }, 0); for (int i = 0; i < pixelData.Length; i++) { pixelData[i] ^= colorInt; } modifiedSource.WritePixels(new Int32Rect(0, 0, w, h), pixelData, widthInBytes, 0); return modifiedSource; }
Currently we can rotate the entire barcode so that it is inverted using styles, however, this means that the text with the barcode is also inverted and so it is displayed upside down. It would be nice to have the ability to "invert" the barcode portion only (turn the barcode upside down)
There are solutions posted on the Telerik forums about how to accomplish this using styles but it would save people a lot of time and work (especially if they are using several barcode types) if there was a Boolean property that could be set to hide or display the barcode text (much like the RenderChecksum property is used to hide or display the checksum for the barcode)