WinRT XAML Toolkit - Controls, extensions and helper classes for WinRT
A set of controls, extensions and helper classes for Windows Runtime XAML applications
Features
- A copy of the AsyncUI library - a set of extension methods for UI classes that add support for async/await to wait for events such as:
- Wait for a BitmapImage to load
- Wait for a Button or one of a list of buttons to be clicked
- Wait for a FrameworkElement to load, unload or become non-zero-sized
- Wait for a MediaElement to change state - eg. to start or finish playback
- Wait for a Selector (e.g. ListBox) to change selected item
- Wait for a Storyboard to complete
- Controls
- AnimatingContainer - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive
- CascadingTextBlock - a TextBlock replacement that animates the individual letters in a cascade - fading in while falling down into position, then optionally fading out while falling down from the standard position
- CountdownControl - a movie-style control that animates a ring-slice shape while counting down seconds - e.g. to take a picture with a camera after a given number of seconds (supports async/await)
- DelayedLoadControl - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen
- PieSlice - a pie slice path/shape given StartAngle, EndAngle and Radius
- RingSlice - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius
- TextBlockExtensions/GetCharacterRect() - an extension method that returns a rectangle that holds a character at a given index in the TextBlock
- Conterters
- BooleanToDataTemplateConverter - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.
- Extensions
- WriteableBitmap - a set of extension methods for a WriteableBitmap
- ColorExtensions - Conversions between pixels and pixel buffer types of byte, int and Color
- IBufferExtensions - Adds a GetPixels() extension method to the PixelBuffer property of a WriteableBitmap that reads in the buffer to a byte array and exposes an indexer compatible to the one of the Pixels property in Silverlight's WriteableBitmap
- WriteableBitmapSaveExtensions - support for loading and saving the bitmap to/from files
- WriteableBitmapBlitBlockExtensions - support for quick blitting of a full-width section of a bitmap to another bitmap of same width
- WriteableBitmapCopyExtensions - support creating a copy of a WriteableBitmap
- WriteableBitmapCropExtensions - support for creating a cropped version of a WriteableBitmap
- WriteableBitmapFloodFillExtensions - support for flood-filling a region of a WriteableBitmap - either limited by an outline color or by replacing a given color - usually a color at the starting position or colors similar to it
- Serialization
- JsonSerialization - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.
- XmlSerialization - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.
- StringIOExtensions - allows to easily read or write a string from/to file in a single call
- VisualTree helpers
- VisualTreeDebugger - provides a trace of the visual tree structure when a control loads, its layout updates or it gets tapped as well as allowing the application to break in the debugger if one of these events occurs
- VisualTreeHelperExtensions - provides a set of extension methods that enumerate visual tree ascendants/descendants of a given control - making it easy to do these operations with LINQ as well as simple ways to list controls of a given type or find the first control of a given type searching up or down the visual tree
..."
With jump that is WinRT, with its locked down, limited .Net profile, we'll be seeing a number of libraries, projects and such like this. I don't know what it is about this one, but I just thought it cool and something I wanted to share... :)
No comments:
Post a Comment