<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>winrtxamltoolkit Wiki Rss Feed</title><link>http://winrtxamltoolkit.codeplex.com/</link><description>winrtxamltoolkit Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>https://winrtxamltoolkit.codeplex.com/wikipage?version=67</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently employed by Microsoft, but the project has mostly been developed earlier and continues to be developed outside of work hours.&lt;br /&gt;It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it includes ported versions of some of its controls. This does not diminish the value of the code that is part of it and that you are free to use and modify. Attribution is welcomed, but not required.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DC.ShowVisualTree()&lt;/b&gt; - enables visualizing and manipulating visual tree of the application using a TreeView control and custom property editors&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development, but incomplete)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScatterView&lt;/b&gt;, &lt;b&gt;ScatterViewItem&lt;/b&gt; - implementations of the &lt;b&gt;ItemsControl&lt;/b&gt; classes of the original Microsoft Surface that allow to freely drag the items on the screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkPasswordBox&lt;/b&gt; control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Extended visual debugging and integration support tools&lt;/b&gt; such as sample data generation or capture from live runtime data, visual tree debugging, storyboard debugging etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.johanlaanstra.nl/"&gt;Johaan Laanstra&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/jlaanstra/Windows.UI.Interactivity"&gt;Windows.UI.Interactivity&lt;/a&gt; - a port of System.Windows.Interactivity to the Windows Runtime that includes both behaviors and triggers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://xamlcropcontrol.codeplex.com/"&gt;https://xamlcropcontrol.codeplex.com/&lt;/a&gt; - XAML Crop Control&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.actiprosoftware.com/products/controls/winrt"&gt;Actipro WinRT XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mindscapehq.com/products/metroelements"&gt;Mindscape Metro Elements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.perpetuumsoft.com/Windows8-UI-Controls.aspx"&gt;Perpetuum UI Controls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Sun, 19 May 2013 06:38:59 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130519063859A</guid></item><item><title>Updated Wiki: Home</title><link>https://winrtxamltoolkit.codeplex.com/wikipage?version=66</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently employed by Microsoft, but the project has mostly been developed earlier and continues to be developed outside of work hours.&lt;br /&gt;It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it includes ported versions of some of its controls. This does not diminish the value of the code that is part of it and that you are free to use and modify. Attribution is welcomed, but not required.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development, but incomplete)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScatterView&lt;/b&gt;, &lt;b&gt;ScatterViewItem&lt;/b&gt; - implementations of the &lt;b&gt;ItemsControl&lt;/b&gt; classes of the original Microsoft Surface that allow to freely drag the items on the screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkPasswordBox&lt;/b&gt; control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Extended visual debugging and integration support tools&lt;/b&gt; such as sample data generation or capture from live runtime data, visual tree debugging, storyboard debugging etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.johanlaanstra.nl/"&gt;Johaan Laanstra&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/jlaanstra/Windows.UI.Interactivity"&gt;Windows.UI.Interactivity&lt;/a&gt; - a port of System.Windows.Interactivity to the Windows Runtime that includes both behaviors and triggers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://xamlcropcontrol.codeplex.com/"&gt;https://xamlcropcontrol.codeplex.com/&lt;/a&gt; - XAML Crop Control&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.actiprosoftware.com/products/controls/winrt"&gt;Actipro WinRT XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mindscapehq.com/products/metroelements"&gt;Mindscape Metro Elements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.perpetuumsoft.com/Windows8-UI-Controls.aspx"&gt;Perpetuum UI Controls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Sun, 12 May 2013 04:53:23 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130512045323A</guid></item><item><title>Updated Wiki: Home</title><link>https://winrtxamltoolkit.codeplex.com/wikipage?version=65</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently employed by Microsoft, but the project has mostly been developed earlier and continues to be developed outside of work hours.&lt;br /&gt;It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it includes ported versions of some of its controls. This does not diminish the value of the code that is part of it and that you are free to use and modify. Attribution is welcomed, but not required.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development, but incomplete)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScatterView&lt;/b&gt;, &lt;b&gt;ScatterViewItem&lt;/b&gt; - implementations of the &lt;b&gt;ItemsControl&lt;/b&gt; classes of the original Microsoft Surface that allow to freely drag the items on the screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkPasswordBox&lt;/b&gt; control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Extended visual debugging and integration support tools&lt;/b&gt; such as sample data generation or capture from live runtime data, visual tree debugging, storyboard debugging etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.actiprosoftware.com/products/controls/winrt"&gt;Actipro WinRT XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mindscapehq.com/products/metroelements"&gt;Mindscape Metro Elements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.perpetuumsoft.com/Windows8-UI-Controls.aspx"&gt;Perpetuum UI Controls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Sun, 07 Apr 2013 04:15:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130407041548A</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=64</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently employed by Microsoft, but the project has mostly been developed earlier and continues to be developed outside of work hours.&lt;br /&gt;It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it includes ported versions of some of its controls. This does not diminish the value of the code that is part of it and that you are free to use and modify. Attribution is welcomed, but not required.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development, but incomplete)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkPasswordBox&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Extended visual debugging and integration support tools&lt;/b&gt; such as sample data generation or capture from live runtime data, visual tree debugging, storyboard debugging etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.actiprosoftware.com/products/controls/winrt"&gt;Actipro WinRT XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mindscapehq.com/products/metroelements"&gt;Mindscape Metro Elements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.perpetuumsoft.com/Windows8-UI-Controls.aspx"&gt;Perpetuum UI Controls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Thu, 28 Mar 2013 20:50:51 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130328085051P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=63</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point (it includes some of its controls). This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.actiprosoftware.com/products/controls/winrt"&gt;Actipro WinRT XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mindscapehq.com/products/metroelements"&gt;Mindscape Metro Elements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.perpetuumsoft.com/Windows8-UI-Controls.aspx"&gt;Perpetuum UI Controls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Wed, 06 Mar 2013 18:19:23 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130306061923P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=62</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point (it includes some of its controls). This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.actiprosoftware.com/products/controls/winrt"&gt;Actipro WinRT XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mindscapehq.com/products/metroelements"&gt;Mindscape Metro Elements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Mon, 04 Feb 2013 16:44:24 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130204044424P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=61</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point (it includes some of its controls). This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.actiprosoftware.com/products/controls/winrt"&gt;Actipro WinRT XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Thu, 17 Jan 2013 16:56:28 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130117045628P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=60</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point (it includes some of its controls). This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.actiprosoftware.com/products/controls/winrt"&gt;Actipro WinRT XAML Controls&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Thu, 17 Jan 2013 16:55:50 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130117045550P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=59</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point (it includes some of its controls). This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt; - looks quite good, though the performance of the beta is a bit slow&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.actiprosoftware.com/products/controls/winrt"&gt;Actipro WinRT XAML Controls&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Thu, 17 Jan 2013 16:55:24 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130117045524P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=58</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a full port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point (it includes some of its controls). This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt; - looks quite good, though the performance of the beta is a bit slow&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Fri, 04 Jan 2013 19:37:05 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130104073705P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=57</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;&lt;br /&gt;This library gives you some helpful controls and extensions, but it is an open source project developed in free time. If you need controls not available here and otherwise well tested controls - consider the commercial solutions.
&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt; - looks quite good, though the performance of the beta is a bit slow&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.devexpress.com/Products/NET/Controls/WinRT/"&gt;DevExpress Windows 8 XAML Controls&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Sat, 03 Nov 2012 04:35:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121103043548A</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=56</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Commercial component libraries&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.syncfusion.com/products/winrt?src=winrtxamltoolkit"&gt;Syncfusion Essential Studio for WinRT/XAML/&lt;/a&gt; - looks quite good, though the performance of the beta is a bit slow&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.telerik.com/products/windows-8/overview.aspx"&gt;Telerik RadControls for Windows 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.componentone.com/SuperProducts/StudioWinRTXAML/"&gt;ComponentOne Studio for WinRT XAML&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Sat, 03 Nov 2012 04:31:28 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121103043128A</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=55</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorPicker&lt;/b&gt; control (already in development)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Project and item templates&lt;/b&gt; - with or without AlternativePage/Frame, with a recommended AppShell control, settings panels, app bar, mvvm basics etc.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Wed, 17 Oct 2012 20:39:20 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121017083920P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=54</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CropControl&lt;/b&gt; - a control for cropping images.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Mon, 15 Oct 2012 05:29:11 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121015052911A</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=53</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use NuGet&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Wed, 10 Oct 2012 17:32:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121010053207P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=52</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use Nuget.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging tools&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Wed, 10 Oct 2012 17:31:34 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121010053134P</guid></item><item><title>Updated Wiki: Home</title><link>http://winrtxamltoolkit.codeplex.com/wikipage?version=51</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;For compiled version use Nuget.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit"&gt;Core library&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nuget.org/packages/winrtxamltoolkit.debugging"&gt;Debugging helpers&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Wed, 10 Oct 2012 17:31:10 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121010053110P</guid></item><item><title>Updated Wiki: Home</title><link>http://jupitertoolkit.codeplex.com/wikipage?version=50</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; - the original location of the Silverlight Toolkit&amp;#39;s chart controls ported to Jupiter that are now also part of this project.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Mon, 01 Oct 2012 20:45:12 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121001084512P</guid></item><item><title>Updated Wiki: Home</title><link>http://jupitertoolkit.codeplex.com/wikipage?version=49</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chart&lt;/b&gt; - Silverlight Toolkit&amp;#39;s Chart control ported by &lt;a href="http://twitter.com/MahmoudMoussa"&gt;Mahmoud Moussa&lt;/a&gt; (&lt;a href="http://www.codeplex.com/site/users/view/ZeeMoussa"&gt;ZeeMoussa&lt;/a&gt; on CodePlex) and merged from his &lt;a href="http://modernuitoolkit.codeplex.com/team/view"&gt;Windows 8 Toolkit - Charts and More&lt;/a&gt; project. Supports pie charts, bar charts, scatter charts, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Mon, 01 Oct 2012 20:39:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121001083901P</guid></item><item><title>Updated Wiki: Home</title><link>http://jupitertoolkit.codeplex.com/wikipage?version=48</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A set of controls, extensions and helper classes for &lt;a href="http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework"&gt;Windows Runtime XAML&lt;/a&gt; applications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disclaimer&lt;/b&gt;&lt;br /&gt;This project is not managed by Microsoft. Its coordinator is currently not employed or sponsored by Microsoft. It is not a port of the &lt;a href="http://silverlight.codeplex.com/"&gt;Silverlight Toolkit&lt;/a&gt;, though it might get there at some point. This does not diminish the value of the code that is part of it and that you are free to use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do I use it?&lt;/b&gt;&lt;br /&gt;Download the full &lt;a href="http://winrtxamltoolkit.codeplex.com/SourceControl/list/changesets"&gt;source code&lt;/a&gt; or just the snippet you find useful. Be sure to try the samples! Find me on &lt;a href="http://twitter.com/#!/xyzzer"&gt;twitter&lt;/a&gt; to ask any questions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Features&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;Integrated extensions from the &lt;b&gt;&lt;a href="http://asyncui.codeplex.com/"&gt;AsyncUI library&lt;/a&gt;&lt;/b&gt; - a set of extension methods for UI classes that add support for async/await to wait for events such as:
&lt;ul&gt;&lt;li&gt;Wait for a BitmapImage to load&lt;/li&gt;
&lt;li&gt;Wait for a Button or one of a list of buttons to be clicked&lt;/li&gt;
&lt;li&gt;Wait for a FrameworkElement to load, unload or become non-zero-sized&lt;/li&gt;
&lt;li&gt;Wait for all images in a FrameworkElement&amp;#39;s visual tree to load&lt;/li&gt;
&lt;li&gt;Wait for a MediaElement to change state - eg. to start or finish playback&lt;/li&gt;
&lt;li&gt;Wait for a Selector (e.g. ListBox) to change selected item&lt;/li&gt;
&lt;li&gt;Wait for a Storyboard to complete&lt;/li&gt;
&lt;li&gt;Wait for a VisualState transition to complete&lt;/li&gt;
&lt;li&gt;Wait for a WebView to complete navigation&lt;/li&gt;
&lt;li&gt;Wait for a WriteableBitmap to load (uses polling due to lack of an event)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AlternativeFrame&lt;/b&gt;, &lt;b&gt;AlternativePage&lt;/b&gt; - support asynchronous page transitions and preloading pages so when navigation is initiated - all content might already be loaded. Includes 4 built-in transitions: dissolve, flip, push, wipe. You can add new ones yourself.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AnimatingContainer&lt;/b&gt; - a container control that will animate its contents rotating or zooming in/out, eg. to make them feel more alive.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CameraCaptureControl&lt;/b&gt; - supports displaying camera preview, capturing photos and videos, cycling between existing video capture devices, setting preference to Front/Back panel camera, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CascadingTextBlock&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CountdownControl&lt;/b&gt; - 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).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomAppBar&lt;/b&gt; - a custom implementation of the AppBar that automatically handles the three gestures to switch IsOpen (WinKey+Z, Right-Click, EdgeGesture), adds a CanOpen property, so you can prevent it from opening and opens/hides with a sliding animation when placed anywhere in the app, so you can layer content on top of it. Also features CanDismiss property to force the app bar to stay open in some situations, CanOpenInSnappedView which allows to block the app bar from showing up when the app is in the snapped view.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CustomGridSplitter&lt;/b&gt; - a custom implementation of a GridSplitter as a templated control. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;DelayedLoadControl&lt;/b&gt; - given a content/DataTemplate - loads the contents after a given amount of time - e.g. to allow for staged loading of contents on screen.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageButton&lt;/b&gt; - a custom Button control that takes one to three images to be used to represent different states of the button (normal/hover/pressed/disabled) as well as ways for the button to render all 4 states with just one or two images.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageToggleButton&lt;/b&gt; - custom ToggleButton control, that like ImageButton - helps create buttons based on button state images using from 1 to 8 different state images and generating other state images with some simple image processing.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InputDialog&lt;/b&gt; - a custom/templated dialog control that takes text input.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListItemButton&lt;/b&gt; - a simple button control with Click event and Command property to be used inside of list controls (the standard button steals pointer capture from the List/Grid~Items so they can&amp;#39;t be selected.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NumericUpDown&lt;/b&gt; - allows to display and manipulate a number using text input, +/- buttons or Blend-like swipe-manipulations&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PieSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle and Radius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RingSlice&lt;/b&gt; - a pie slice path/shape given StartAngle, EndAngle, Radius and InnerRadius.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WatermarkTextBox&lt;/b&gt; - TextBox control with a watermark. Set WatermarkText to change the watermark prompt, change WatermarkStyle to change the style of the watermark TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebBrowser&lt;/b&gt; - a templated control with a WebView + address bar, title bar, backstack navigation, favicon. &lt;i&gt;work in progress (visual states are a bit messed up), but might be helpful as a starting point&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WrapPanel&lt;/b&gt; (ported from Silverlight Toolkit) - used for layout of child items in wrapping rows or columns - similar to the way text wraps on a page. Different than VariableSizedWrapGrid since it supports items of varying size and auto-sized rows or columns, but it is not a grid and so it does not explicitly support items spanning multiple cells without the use of negative margins.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Controls.Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;AnimationHelper&lt;/b&gt; - two attached properties - Storyboard and IsPlaying. Allows to easily control Storyboard playback from a view model (note limitation - a single storyboard per control).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AppBarExtensions.HideWhenSnapped&lt;/b&gt; - allows to make the AppBar automatically hide when the app goes to the snapped view. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ContentControlExtensions.FadeTransitioningContentTemplate&lt;/b&gt; - allows to change content template with a fade out/fade in transition.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ControlExtensions.Cursor&lt;/b&gt; - enables setting a mouse cursor to show when hovering over a control.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FrameworkElementExtensions.ClipToBounds&lt;/b&gt; - automatically updates the Clip property to clip the contents of the element to its bounds.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImageExtensions.FadeInOnLoaded/.Source&lt;/b&gt; - allows to specify an image source such that the image fades in smoothly when the image source is loaded.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ListBoxExtensions./ListViewExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindableSelection&lt;/b&gt; - allows a two-way binding of the SelectedItems collection on the Selector/list controls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ItemToBringIntoView&lt;/b&gt; - allows to control which item should be visible through a view model binding without changing the selected item itself.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;RichTextBlockExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;PlainText&lt;/b&gt; - attached property that allows to easily single-way-bind plain text to a RichTextBlock (not really that useful other than for visualizing RichTextBlock styles in the sample app provided).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LinkedHtmlFragment&lt;/b&gt; - attached property that allows to easily single-way-bind plain text with HTML links (anchor tags) to a RichTextBlock to automatically generate links. Extension methods like SetLinkedHtmlFragment() and AppendLink() are also available.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ScrollViewerExtensions.ScrollToHorizontalOffsetWithAnimation(), .ScrollToVerticalOffsetWithAnimation()&lt;/b&gt; - provide a way to scroll a ScrollViewer to specified offset with an animation.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBlockExtensions/GetCharacterRect()&lt;/b&gt; - an extension method that returns a rectangle that holds a character at a given index in the TextBlock.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TextBoxValidationExtensions&lt;/b&gt; - extensions that allow to specify the Format of the requested Text input as well as brushes to use to highlight a TextBox with valid or invalid Text.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ViewboxExtensions.GetChildScaleX()/GetChildScaleY()&lt;/b&gt; - return the effective scale of the Viewbox Child.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualTreeHelperExtensions&lt;/b&gt; - 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.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WebViewExtensions&lt;/b&gt; - extensions to get currently loaded page address, title, favicon, head tag&amp;#39;s inner HTML.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Converters&lt;/b&gt;.
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BindingDebugConverter&lt;/b&gt; - helps debug bindings by allowing to trace or break whenever a binding gets updated.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToDataTemplateConverter&lt;/b&gt; - given two DataTemplates (TrueTemplate and FalseTemplate) - converts the input value to the given template. A different take on DataTemplateSelector.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BooleanToVisibilityConverter&lt;/b&gt; - the mother of all converters&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorToBrushConverter&lt;/b&gt; - converts a Color to a Brush&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DoubleToIntConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToBoolConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NullableBoolToVisibilityConverter&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SecondsToTimeSpanStringConverter&lt;/b&gt; - converts the number of seconds (a double type) to a TimeSpan - useful for configuring some animations&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Debugging&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;VisualTreeDebugger&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Debug/DebugConsole/DebugConsoleOverlay/DC.Trace()&lt;/b&gt; - enables tracing and displaying traced information right in the application on a collapsible panel&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Imaging Extensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BitmapImageLoadExtensions&lt;/b&gt; - extensions to simplify loading BitmapImages based on StorageFile or file name&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ColorExtensions&lt;/b&gt; - Conversions between pixels and pixel buffer types of byte, int and Color&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IBufferExtensions&lt;/b&gt; - 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&amp;#39;s WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmap~&lt;/b&gt; - a set of extension methods for a WriteableBitmap
&lt;ul&gt;&lt;li&gt;&lt;b&gt;WriteableBitmapSaveExtensions&lt;/b&gt; - support for loading and saving the bitmap to/from files&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapBlitBlockExtensions&lt;/b&gt; - support for quick blitting of a full-width section of a bitmap to another bitmap of same width&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCopyExtensions&lt;/b&gt; - support creating a copy of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapCropExtensions&lt;/b&gt; - support for creating a cropped version of a WriteableBitmap&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapDarkenExtension&lt;/b&gt; - performs image processing to darken the pixels of the WriteableBitmap.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFloodFillExtensions&lt;/b&gt; - 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&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapFromBitmapImageExtension&lt;/b&gt; - allows to create a WriteableBitmap from a BitmapImage assuming the BitmapImage is installed with the application.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapGrayscaleExtension&lt;/b&gt; - performs image processing to make the pixels of the WriteableBitmap (more) grayscale.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WriteableBitmapLightenExtension&lt;/b&gt; - performs image processing to lighten the pixels of the WriteableBitmap.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;IO&lt;/b&gt; helpers
&lt;ul&gt;&lt;li&gt;&lt;b&gt;ScaledImageFile.Get()&lt;/b&gt; - Used to retrieve a StorageFile that uses qualifiers in the naming convention.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFileExtensions.GetSize()/.GetSizeString()&lt;/b&gt; - allow to get the size of a file and its string representation (automatically converting from bytes to kB, MB, GB, TB)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StorageFolderExtensions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;.ContainsFile()&lt;/b&gt; - returns a value that states whether a file with specific name exists in the folder&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFile()&lt;/b&gt; - creates a temporary file&lt;/li&gt;
&lt;li&gt;&lt;b&gt;.CreateTempFileName()&lt;/b&gt; - returns an unused, unique file name for a temporary file&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;StringIOExtensions&lt;/b&gt; - allows to easily read or write a string from/to file in a single call&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Serialization&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;JsonSerialization&lt;/b&gt; - allows to serialize a properly DataContract-annotated object to a JSON string or file or deserialize an existing one.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlSerialization&lt;/b&gt; - allows to serialize a properly DataContract- or XmlSerializer-annotated object to a XML string or file or deserialize an existing one.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Net.WebFile.SaveAsync()&lt;/b&gt;- downloads a file from a given URL, automatically figuring out the recommended file name and saving it to a given or default folder&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tools&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;BackgroundTimer&lt;/b&gt; - a timer class similar to DispatcherTimer in its interface, but somewhat more precise and running on a background thread&lt;/li&gt;
&lt;li&gt;&lt;b&gt;EnumExtensions.GetValues&amp;lt;T&amp;gt;()&lt;/b&gt; - allows to get an array of strongly typed values of enum type T&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TryCatchRetry&lt;/b&gt; - allows to run a specific Task or Action, catching exceptions and retrying for a specified number of retries, with optional delays in between (mostly a debugging tool or a means of temporary workarounds)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work in Progress&lt;/b&gt;&lt;br /&gt;The libraries are just a set of helper methods and controls that I found useful to fill the gaps in Windows Runtime XAML framework and continues to evolve.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Likely Additions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cancellation support&lt;/b&gt; to AsyncUI extensions and other awaitable methods&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AutoComplete&lt;/b&gt; control or attached property/behavior&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Calendar&lt;/b&gt; control (&lt;b&gt;Note&lt;/b&gt; - there is currently a version of the Silverlight Toolkit control that I ported to WinRT &lt;a href="http://bit.ly/WinRTCalendar"&gt;here&lt;/a&gt;, but I keep it separate since I am considering something more touch-friendly for WinRT&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date/Time/DateTimePicker&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;InkCanvas&lt;/b&gt; control&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MultiScaleImage&lt;/b&gt; control for Deep Zoom support - could be based on the &lt;a href="http://www.codeproject.com/Articles/128695/Deep-Zoom-for-WPF"&gt;WPF implementation&lt;/a&gt; from CodeProjet&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pivot&lt;/b&gt; control - analogous to a Pivot control on Windows Phone or a TabControl in WPF.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WeatherAppTabControl&lt;/b&gt; - a Pivot/TabControl like control that mimics the one in the Weather App.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;br /&gt;Please share your experience with the toolkit either in the &lt;a href="http://winrtxamltoolkit.codeplex.com/discussions"&gt;DISCUSSIONS&lt;/a&gt; page or directly on &lt;a href="https://twitter.com/#!/xyzzer/"&gt;twitter&lt;/a&gt;. What do you use? How does it work for you? What are you missing? What would you change? Feedback is crucial and drives further development.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Related Projects&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://twitter.com/#!/timheuer"&gt;Tim Heuer&amp;#39;s&lt;/a&gt; and &lt;a href="http://twitter.com/dotmorten"&gt;Morten Nielsen&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/timheuer/callisto/tree/master/src/Callisto"&gt;Callisto&lt;/a&gt; - contains a host of controls (DateTimePicker, Flyout, LiveTile, Menu, SettingsFlyout), converters, Tilt Effect, OAuth helper, SQLite connection helper, etc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://win8nl.codeplex.com/"&gt;Win8nl utilities&lt;/a&gt; - a helper library for Jupiter, featuring some excellent attached behaviors. Based on &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; and &lt;a href="http://mvvmlight.codeplex.com"&gt;MVVM Light&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/LocalJoost"&gt;Joost van Schaik&amp;#39;s&lt;/a&gt; &lt;a href="http://winrtbehaviors.codeplex.com/"&gt;WinRT Behaviors&lt;/a&gt; - modeled after the original Blend Behaviors - these make creating attached behaviors easier and are configurable with Blend.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://winrtxamlcalendar.codeplex.com/"&gt;WinRT XAML Calendar&lt;/a&gt; - a version of the Silverlight Toolkit calendar ported to WinRT.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://asyncui.codeplex.com"&gt;AsyncUI&lt;/a&gt; - a separate version of the AsyncUI library with support for WPF, Silverlight and Windows Phone 7 with Async CTP3 (it might not yet have all the features that WinRT XAML Toolkit has in the AsyncUI namespace, but has the most useful ones)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/michielpostnl"&gt;Michiel Post&amp;#39;s&lt;/a&gt; &lt;a href="https://github.com/Q42/Q42.WinRT"&gt;Q42.WinRT library&lt;/a&gt; for data driven Windows 8 C# / XAML WinRT projects&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>xyzzer</author><pubDate>Wed, 19 Sep 2012 21:04:37 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120919090437P</guid></item></channel></rss>