我有一个包含Silverlight绘图板的Web应用程序。笔划在数据库中保存为XAML。此外,任何text或movingableimage对象也都保存在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应用程序内的按钮调用包含上述代码的方法时,它可以正常工作。当以编程方式调用包含上述代码的方法时(即,通过从MVC控制器传递到Silverlight应用程序的参数),它不起作用。