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; }