WP7iPhone is a Windows Phone 7 C# Silverlight app that mimics the famous iPhone interface.
It's completely useless, my main goal here was to teach myself Silverlight layout, animations, binding, etc.
The basic layout of the iPhone is present. There are two screens of apps which are inspired by the actual apps on my actual iPhone. There is also a nonfunctional placeholder for the search page. You can swipe around to switch between pages and that works nice.
If you press and hold on the screen, all the icons will go into "wobble mode". Just like the iPhone this lets you rearrange and delete apps. Press and hold again to return to normal mode. Your icons and their position will be remembered across runs.
(but if you close the emulator and restart it, all the customization gets wiped out)
I don't have an actual Windows Phone, just the emulator. So if you have a phone and want to try this, that would be great. If you want to send me a phone so I can try it, that would be even better!
Problems and Issues
The way I had to implement "wobble mode" seems like a huge hack. Everything in the Silverlight docs says "don't use Triggers" but I couldn't wrap my mind around the whole VisualStateManager/control template goo. Then I thought I could just
change the data template on the fly, but that's broken in SL3. I pounded my head against this for a while and finally gave up and used Triggers. Works great.
There doesn't seem to be a way for the app to get input from the hardware buttons. That's why you have to hold to exit "wobble mode" instead of pushing the button. It also means there is no double-click to access the multi-tasking dock.