Silverlight
Appealing due to its potential reach, but has been the most frustrating to use, probably due to bleeding edge, high expectations and the inevitable comparisons to WPF.
Pros:
- Mac OS X support.
- Linux support (TBA).
- Mobile support (TBA).
- Dynamic sound buffer support.
Cons:
- Missing access to keyboard state.
- Missing caps lock key state from event handlers.
- Missing Binding StringFormat & RelativeSource FindAncestor conveniences.
- Missing RenderOptions SetBitmapScalingMode (NearestNeighbor) for image scaling.
- WriteableBitmap is functional but lacking, not to mention neutered for security reasons.
- Out of Browser mode cannot control window, missing support for platform specific key codes, and does not support caching framework extension assemblies.
I prefer running out of browser, but this mode has a lot of issues to work through before final release. The key bindings are a little messy since the browser tends to hijack the keys I'd prefer to use and the lowest common denominator rules:
| Apple or Setting Key | Keyboard Binding |
| OpenApple | Control+Alt or Control+Left |
| CloseApple | Control+Windows or Control+Right |
| Reset | Control+F12 or Control+Up |
| CpuThrottle | F8 |
| VideoMonochrome | F9 |
| VideoFullscreen | F11 (Browser) |
The current implementation does not have any sound, although this should be possible with Silverlight 3. Also it does not support browsing for disk images, since there is no user interface and the user must initiate the dialog to browse for a local disk image. This could no doubt be quickly added but has not been a priority since I currently prefer the comfort of the WPF implementation.
Screenshots
Note the washed out colors due to the default magnification filter used for image scaling. Unfortunately there is no way to specify the nearest neighbor bitmap scaling mode (available in WPF & XNA).
