Differences Between XAML In The Hand and Silverlight 3

Differences between Silverlight 3 and Silverlight for Windows Embedded with XAML In The Hand

SilverlightXAML In The Hand

Used for developing interactive applications for the web.

Used for developing user interfaces for shells and applications that run on a Windows Embedded Compact powered device.

Supports code-behind that is written in Visual C# .NET Framework classes, Visual Basic, IronPython, and JavaScript.

Supports code-behind that is written in Visual C# or Visual Basic.

Hosts the object tree in a plug-in for an Internet browser window.

Hosts the object tree in a visual host that has an underlying Win32 window.

Supports parsing the ControlTemplate XAML element.

Supports parsing and loading a ControlTemplate XAML element, but you cannot access or modify the child elements in the ControlTemplate element from code.

To add new child elements to a user control in Visual C#, use UserControl.SetContent()

Supports event binding directly in XAML through attribute values.

Supports event binding in Visual C#/Visual Basic by attaching event handlers to UI objects.

Supports new events in Silverlight 3.

Not supported.

Raises the GotFocus event when focus is automatically set on the first focusable element in the visual tree during application initialization.

During application initialization, Silverlight for Windows Embedded sets focus to the first focusable element in the visual tree. However, the GotFocus event is not fired in this case unless you explicitly call Control.Focus() in the initialization procedure.

Supports double type values.

Supports double type values. (Internally these are stored as float and so may lose some precision in some cases).

Supports data binding, either from a data source to a UI control, or between two UI controls, by using XAML binding declarations that use the following syntax:

<object property="{Binding}" .../>

- or -

<object property="{Binding Source=ObjectName

Path=PropertyName}" .../>

Supports data binding from a Visual C# / Visual Basic data source object that implements InTheHand.Collections.Specialized.INotifyCollectionChanged or System.ComponentModel.IBindingList to a UI control.

Silverlight for Windows Embedded does not support using a UI control as the data source for another UI control.

Silverlight for Windows Embedded supports only the Path and Mode data binding properties. The Path property is required. You can define XAML binding declarations that use the following syntax:

<TextBox Text="{Binding Path=TextPathName,

Mode=OneWay}" />

Supports multi-touch input and the Touch class, which processes multi-touch input.

Exposes Windows Phone style events (Tap, Hold, Manipulation* etc) for basic touch gestures. An add-on library is available with a full device-wide Gesture Recognizer.

Supports the ContentPresenter class, which is derived from FrameworkElement.

Supports the equivalent Visual C# class

ContentPresenter, which is derived from the intermediate base class Control instead of from FrameworkElement.

Supports the System.Windows namespace.

Supports XAML elements in the System.Windows namespace and provides many equivalent Visual C# classes.

The following XAML elements are not supported.

  • AssemblyPart
  • AssemblyPartCollection
  • Deployment
  • Expression

Supports the System.Windows.Controls namespace.

Supports XAML elements in the System.Windows.Controls namespace and provides many equivalent Visual C# classes. Supports only built-in controls in this namespace, and not extended controls.

Supports VirtualizingStackPanel and ScrollContentPresenter; however, does not support user input from the mouse wheel button and does not provide equivalent Visual C# methods for the following Silverlight methods.

  • VirtualizingStackPanel.MouseWheelDown
  • VirtualizingStackPanel.MouseWheelLeft
  • VirtualizingStackPanel.MouseWheelRight
  • VirtualizingStackPanel.MouseWheelUp
  • ScrollContentPresenter.LineDown
  • ScrollContentPresenter.LineLeft
  • ScrollContentPresenter.LineRight
  • ScrollContentPresenter.LineUp
  • ScrollContentPresenter.MakeVisible
  • ScrollContentPresenter.PageDown
  • ScrollContentPresenter.PageLeft
  • ScrollContentPresenter.PageRight
  • ScrollContentPresenter.PageUp
  • ScrollContentPresenter.SetHorizontalOffset
  • ScrollContentPresenter.SetVerticalOffset

The following XAML elements are not supported.

  • AutoCompleteBox
  • Calendar
  • DataGrid
  • DataGridCell
  • DataGridCheckBoxColumn
  • DataGridRow
  • DataGridTemplateColumn
  • DataGridTextColumn
  • DataPager
  • DatePicker
  • DescriptionViewer
  • Frame*
  • GridSplitter
  • HeaderedItemsControl
  • MediaElement
  • MultiScaleImage
  • Page*
  • RichTextBox
  • TabControl
  • TreeView
  • ViewBox
  • WebBrowser
  • WebBrowserBrush

To use a tree view or tab control, create a custom user control. To play audio or video in an application for Silverlight for Windows Embedded, add support for specific media formats to your OS design and add code to play media in the methods of a custom user control. For more information, see:-

Audio, Graphics and Media.

*An add-on library is available with Frame/Page and Navigation functionality.

Supports the System.Windows.Controls.Primitives namespace.

Supports XAML elements in the System.Windows.Controls.Primitives namespace and provides many equivalent Visual C# classes. Supports only built-in controls in this namespace, and not extended controls.

Supports the System.Windows.Documents namespace.

Supports all XAML elements in the System.Windows.Documents namespace and provides many equivalent Visual C# classes.

Supports the System.Windows.Ink namespace.

Supports all XAML elements in the System.Windows.Ink namespace and provides many equivalent Visual C# classes.

Supports the System.Windows.Media namespace.

Supports XAML elements in the System.Windows.Media namespace and provides many equivalent Visual C# classes. The following XAML elements are not supported.

  • DeepZoomImageTileSource
  • VideoBrush

Supports the System.Windows.Media.Animation namespace.

Supports all XAML elements in the System.Windows.Media.Animation namespace and provides many equivalent Visual C# classes.

Supports the System.Windows.Media.Effects namespace.

Silverlight for Windows Embedded does not implement effects the same way as Microsoft Silverlight 3.

XAML In The Hand doesn’t provide built in support for Effects but this can be extended to support effects generated for your specific platform architecture.

Effects may be applied to any UIElement.

An effect may only be applied to a parsed UIElement element that had the CacheMode attribute set to BitmapCache.

An effect may only be applied to a UIElement object after you call UIElement.CacheMode = new BitmapCache().

Supports the System.Windows.Media.Imaging namespace.

Supports all XAML elements in the System.Windows.Media.Imaging namespace and provides many equivalent Visual C# classes.

Supports the System.Windows.Shapes namespace.

Supports all XAML elements in the System.Windows.Shapes namespace and provides many equivalent Visual C# classes.

Feedback and Knowledge Base