Я не знаю, правильно ли я задаю вопрос; так что заранее извиняюсь. Я пишу несколько PNG на холст, и я также хочу одновременно скопировать PNG в растровое изображение. Я хочу, чтобы PNG отображались в тех же местах на растровом изображении, что и на холсте.
Это фрагмент кода:
WorkingBMP = new RenderTargetBitmap(BOARD_WIDTH, BOARD_HEIGHT, 96, 96, PixelFormats.Pbgra32);
TreeFile = "pack://application:,,,/Images/" + TreeFile;
var image = new Image
{
Source = new BitmapImage(new Uri(TreeFile))
};
image.Width = 10;
image.Height = 10;
Canvas.SetLeft(image, x );
Canvas.SetTop(image, y );
DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
drawingContext.DrawImage(image, new Rect(x, y, image.Width, image.Height));
drawingContext.Close();
WorkingBMP.Render(drawingVisual);
MainCanvas.Children.Add(image);
ОДНАКО, он выдает ошибку «невозможно преобразовать из« System.Windows.Controls.Image »в« System.Windows.Media.ImageSource »в этой строке:
drawingContext.DrawImage(image,
new Rect(x, y, image.Width, image.Height));
Будет ли эта ошибка решена, если я смогу каким-то образом преобразовать изображение в ImageSource, или я все делаю неправильно?
Спасибо!
BitmapImage
объект, который являетсяImageSource
(стандартная замена ООП/Лисков/и т. д.). Почему бы вам просто не использовать этот объект? Почему вы пытаетесь преобразовать элемент пользовательского интерфейса WPF во что-то другое? - person Peter Duniho   schedule 03.03.2017