First, celebrate. Source code in the CodePlex load up to more than 1000
In addition, this demo program is placed above Microsoft's free Silverlight host, and you can also apply for free space.
Address in http://silverlight.live.com/
Source code Download: http://www.shareidea.net/opensource.htm
Online Demo: http://www.shareidea.net/workflow.htm
Video Tutorials: http://www.shareidea.net/video/sharedesigner/sharedesigner.html
9.1 Problem Description
Today, a netizen asked, this workflow designer can generate the corresponding picture? I can't think of the effect of creating pictures, if you want to use pictures, we can use the method of screen to save to paint, and then save in the System folder. But as an attempt, try to achieve this function.
9.2 Difficulties encountered
Dynamically generating pictures, The first thought was to use system.drawring-related classes, but there was no support for system.drawring in Silverlight, and the answer was that Microsoft did not intend to provide a support for system.drawring in Silverlight Hold.
In addition, it is not possible to save files directly in Silverlight.
These difficulties indicate that it is currently not feasible to generate pictures directly in Silverlight and save them.
9.3 Resolution Method
While we cannot generate pictures directly in Silverlight, but our purpose is to generate pictures, as to where to generate pictures, there is no fixed requirement. We know that in asp.net, we often use system.drawring related classes to dynamically generate pictures, which reminds us that the method of generating pictures can be deferred to the service in the background, and then access the background generated pictures. Use the picture below to represent the entire process.
The above is an ideal execution process, but there is a doubt in the actual application that a new Web page cannot be opened in a function that recalls Silverlight after the picture is generated. Only the code that opens the page is placed in the button click event, but it has no effect on the user, but we need to do a little more work. The difference is reflected in the following code.