У меня есть веб-приложение, которое включает панель рисования Silverlight.Штрихи сохраняются как XAML в базе данных.Кроме того, любые текстовые или перемещаемые объекты также сохраняются в XAML.Исходные изображения объектов moveableimage обслуживаются с того же сервера и того же домена, что и приложение Silverlight.
Чтобы увеличить масштаб содержимого эскиза, я использую WriteableBitmap:
ScaleTransform transform = new ScaleTransform();
transform.ScaleX = (double)10;
transform.ScaleY = (double)10;
WriteableBitmap fullSizeBinary = new WriteableBitmap(workCanvas, transform);
string fullSizeBinaryString = XamlHelper.GetBase64Jpg(fullSizeBinary);
XamlHelper - это пользовательский класс, использующий ImageTools для преобразования WriteableBitmap в JPEG.Я пытался с и без преобразования.WriteableBitmap пропускает дочерние объекты moveableimage, и результирующий JPEG имеет все обводки и текстовые объекты, но объекты moveableimage не визуализируют.Я пробовал разные вещи, думая, что это безопасность, память, разные пути контроллера и т. Д. Ничего.Я часами бился об это, и я не могу понять.
Когда пользователь, нажимающий кнопку в приложении Silverlight, вызывает метод, содержащий приведенный выше код, он работает отлично.Когда метод, содержащий приведенный выше код, вызывается программно (т. Е. Через параметр, переданный в приложение Silverlight из контроллера MVC), он не работает.