Do you remember Silverlight 1.0 Page Turn Sample? I Do. It was probably the first Silverlight application I saw and I was delighted with it.
Then Silverlight 1.1 came up, followed by 2.0 Beta 1
and Beta 2 (soon we'll have RTM), Beta 2 and now 2.0 and this demo got behind.
Well, I believe I can help you - I took the 1.0 demo and fully translated it to C# with the minimal changes I could.
What does this means? Well... it works perfectly: managed code, single .xap file... but the application pattern is still the same we had on the original 1.0 sample - lots of string manipulation. Now it's up to you to take it and redesign it leveraging the new 2.0 framework.
You can see it running here. (Updated on 2008-10-15 for Silverlight 2.0 final)
When I was working on it a few things "bugged me" and I decided to change them. These are the extras I've added:
- Page content configuration
The content of each page is now defined on a pageContent.xml file.
This means you can configure your "books" without coding. All you have to do is define your images on this XML file and copy the .xap to your web server (.xap available here). Try it!
- Page labels
Instead of editing images just to add a title, set each page title, subtitle and foreground color on pageContent.xml.
- Last page turn
Why should the last page be fixed? Not anymore.
- Single image, two pages
Having a picture per page may be useful in some situations but most of the time what is desired is to have a single picture (with double width) spanning through a pair of pages. This release supports it.
- Thumbnails scrolling
The original thumbnail scrolling exhibited some abrupt movements when entering the scroll area. The scroll algorithm was fully redesigned.
- Hand-like cursor on draggable areas
This is one of those things you always forget to set till someone says to you: "How do I use this thing?". Thanks Bruno.
Page Turn for Silverlight 2.0 binaries are available here.
A running demo can be seen here: PageTurn 2.
The original Silverlight 1.0 demo is still available here. Compare the differences.
Source code is now available here. (Updated on 2008-10-22)
Note that it wasn’t fully redesigned when ported from SL1.0 - this is not a good practice!