ColinE прав, но есть нюанс. Если вы используете его код, он автоматически удалит изображение, как только оно будет установлено в качестве источника. Результатом этого будет либо ошибка, указывающая на то, что вы пытались обновить пользовательский интерфейс из потока, не являющегося пользовательским интерфейсом, либо возникновение проблемы при попытке визуализации уже расположенного растрового изображения.
Вместо этого я бы предпочел оставить ссылку на текущее изображение, затем изменить изображение, а затем использовать ссылку на предыдущее текущее изображение, чтобы удалить это изображение. У вас нет доступа к банкомату IDE, но что-то вроде этого (при условии, что код выполняется в потоке пользовательского интерфейса, в противном случае вам также нужно будет убедиться, что код вызывается там).
Поток MemoryStream = новый MemoryStream (данные);
BitmapImage image = new BitmapImage ();
image.SetSource (stream);
IDisposable toDispose = (IDisposable) BackgroundImage.Source;
BackgroundImage.Source = image;
toDispose.Dispose ();
Также, если вы не хотите заново изобретать большую часть колеса, взгляните на VNC, VNC # - это библиотека для нее, и она дает вам разумное понимание того, как другие сделали удаленное взаимодействие на рабочем столе. перед тем