XAML for Windows Embedded Application Development (Compact 2013)
XAML for Windows Embedded is a "UI development framework" for "embedded devices" and is based on Microsoft Silverlight for the desktop browser. By using XAML for Windows Embedded, you can create an application that supports features such as storyboard animations, transformations, interactive controls, a layout system, and a visual tree.
XAML for Windows Embedded is a native C++ development framework in which you can design a UI for the shell and applications for a Windows Embedded Compact device. You can use Blend for Visual Studio to quickly design a UI in Extensible Application Markup Language (XAML), which you can then convert, or you can build your application from scratch in Microsoft Visual Studio 2013 or Microsoft Visual Studio 2015 by using one of templates provided with Windows Embedded Compact. In the native C++ source files for your application, you can use the rest of the features of Windows Embedded Compact 2013, including any existing window controls.
By using XAML for Windows Embedded, you can create a UI that provides advanced visual effects for your Windows Embedded Compact device shell and applications. XAML for Windows Embedded makes this possible by supporting a subset of XAML elements and by supplying a set of C++ classes that provide access to these elements.
XAML for Windows Embedded parses a XAML UI and loads it into a C++ object tree. It then integrates the C++ objects with the Graphics, Windowing, and Events (GWES) subsystem to provide a UI for Windows Embedded Compact devices.
The following picture shows a sample home screen that was developed by using XAML for Windows Embedded.
Sample Home Screen with Default Theme for Large Size Screens
Features and Benefits of XAML for Windows Embedded Development Framework
The XAML for Windows Embedded development framework provides the following features and benefits:
- XAML for Windows Embedded C++ API and a programming model that integrates with the Windows Embedded Compact operating system. This interoperability helps shorten the learning curve for developers who are familiar with programming in C++ for Windows Embedded Compact.
- C++ classes that developers can use to create or customize the visual appearance and the behavior of UI elements.
- Support for advanced UI features, including gradients, transformations, and animations, so that developers can create interactive XAML for Windows Embedded-based controls in UIs for embedded applications.
- Compatibility with Silverlight XAML and a set of equivalent classes for supported XAML elements for developers and designers who are familiar with using Silverlight XAML.
- Run-time support for displaying XAML UIs so that, if they prefer, OEMs can design UIs for applications that are entirely in XAML.
- Ability to dynamically change the UI at run time by using C++.
- Separation of programming logic and UI design to encourage XAML designers to focus on designing user experiences, and to help developers to focus on integration, programming logic, and run-time behavior.
- Interoperability with Blend XAML projects and Windows Embedded XAML Tools. You can use them together to generate template C++ project code that is based on an Blend XAML project.
Supported XAML UI Features
XAML for Windows Embedded introduces a subset of Silverlight features to embedded devices, including the following UI features:
- Advanced Graphics. Graphics capabilities include brushes that produce gradient multicolor blend effects; image brushes that can paint the interior of UI elements, and; transforms, which are used to rotate, scale, translate, or skew UI elements. Three-dimensional (3-D) graphics capabilities include 3-D transforms, which transform UI elements in three-dimensional space.
- Layout System. The layout system handles the tasks of drawing, resizing, and positioning the UI elements in the graphical window. This built-in functionality removes from the developer the responsibility of drawing and sizing elements on-screen by using C++ code. XAML for Windows Embedded supports layout container objects that work with the layout system to manage the arrangement of UI elements on-screen at run time.
- Animation, Timers, and Storyboards. Animation storyboards can enable UI elements to appear to dynamically change or move on the screen. This effect is achieved by quickly cycling through a series of images, or key frames, each slightly different from the previous one, over a specified duration of time. This visual effect can be achieved by defining each key-frame C++ object and implementing an animation storyboard.
- Pixel Effects. Pixel effects modify the appearance of a UI element; for example, by blurring the appearance of an element or adding a drop shadow. Pixel effects usually require hardware acceleration so that the graphics processing is done as fast as possible.
- Text and Typography. You can use both text controls and typography to display text in a XAML for Windows Embedded-based application. You can customize the display of text and provide unique customizations by changing visual properties or layout, or by applying transforms to the text. By using built-in support for the XML Paper Specification (XPS), you can also use predefined glyphs in the XAML for Windows Embedded UI. A glyph is a rendered image that is a visual representation of a character in a font.
- New Controls. XAML for Windows Embedded introduces new XAML for Windows Embedded controls to Windows Embedded Compact developers, such as user controls, content controls, grids, canvases, paths, rectangles, and password boxes. Each of these controls inherit from the intermediate base class IXRFrameworkElement. XAML for Windows Embedded also provides intermediate base classes that are specifically intended for creating custom controls.
- Styles and Templates. Styles and templates collectively define the pieces that make up the appearance of a control and provide the default visual behavior of the control. You can apply styles and templates to controls to define a consistent look for specific types of controls in your application.
- Geometry. Geometry objects can be used for rendering two-dimensional graphic data on-screen.
- Triggers and Events. Triggers let developers define a custom visual behavior that is demonstrated in response to the Loaded event. Additionally, storyboard animations that show visual behavior can be started from within event-handler code. Custom visual behaviors can include changing the color, shape, or size of an object, or playing a short animation storyboard.
The following figures show the types of new XAML for Windows Embedded controls with custom visual appearances that you can design and add to Windows Embedded Compact applications to replace the standard Microsoft Win32 controls.
Programming Model in XAML for Windows Embedded
XAML for Windows Embedded offers a comprehensive C++ API that is interoperable with XML-based declarative markup and has no dependency on the .NET Framework.
By using XAML for Windows Embedded, embedded OEMs can either completely predefine the visual appearance, effects, and behavior in source XAML, or use the C++ programming model to create or customize the UI appearance and functionality for the shell and applications.
Developers can use the XAML for Windows Embedded C++ API to load and display an existing XAML UI, implement event handling for the XAML elements, or customize the UI at run time by adding new elements or changing the visual appearance to respond to factors present at run time.
To enable interaction with the XAML UI at run time, XAML for Windows Embedded provides Win32 support for hosting the XAML for Windows Embedded visual tree. It also uses the same visual tree to store new objects that are added by C++ application code at run time.
Design Workflow in XAML for Windows Embedded
XAML for Windows Embedded provides Windows Embedded Compact 2013 developers and XAML designers with the API and tools for creating advanced UIs. By using XAML for Windows Embedded, OEMs can use the C++ XAML for Windows Embedded programming model to create UI elements, graphics, and animations that take advantage of blend effects, weights, shadows, and gradients. OEMs can also work closely with XAML designers who use Blend to develop customized device UIs for both the shell and applications.
XAML designers can design UIs with XAML by using Blend, and embedded developers can develop UI functionality in C++ by using Platform Builder.
The following figures show examples of themes that are designed by using XAML for Windows Embedded XAML for a Windows Embedded Compact-powered device.
Sample Home Screen with Theme 1 for Medium Size Screens
Sample Home Screen with Theme 2 for Small Size Screens
Win32 Control Compatibility
XAML for Windows Embedded is interoperable with the Win32 controls that were developed in previous versions of Windows Embedded Compact.
By using Win32 control compatibility, you can add window controls, such as a combo box, button, or list box, to the XAML for Windows Embedded object tree at run time, without needing to rewrite or change the source code for your window controls.
In This Section
- Getting Started with XAML for Windows Embedded
Describes how to use Windows Embedded XAML Tools with a simple Microsoft Expression Blend sample project.
- Create a XAML for Windows Embedded Application
Describes how to create an application project by using the Windows Embedded Compact project templates in Visual Studio.
- Visual Hosts and Visual Trees in XAML for Windows Embedded
Describes the UI object model of XAML for Windows Embedded and how to instantiate new elements or obtain pointers to UI elements in order to modify them.
- Type-Safe Conversion of Generic Object Types in XAML for Windows Embedded
Describes how to use helper templates or QueryInterface to convert the generic object type that is returned by most methods into a specific type, so you can reference XAML for Windows Embedded objects by their class name.
- Embed Fonts in a XAML for Windows Embedded Application
Describes how to embed font files in your application and how to format text to use the embedded fonts.
- Expression Blend and XAML for Windows Embedded
Describes the tools you can use to quickly design a XAML-based UI and convert it into a XAML for Windows Embedded application project.
- Designer and Developer Workflow in XAML for Windows Embedded
Describes a process by which designers and developers can work on a project at the same time without blocking each other's progress.
- Build an Interactive XAML Application
Describes how you can enable your XAML application to respond to user input and system events using Event Handling; Behaviors, Actions, and Triggers; and Visual States.
- Application Debugging in XAML for Windows Embedded
Describes a few of the basic options you can use to debug a XAML for Windows Embedded application.
- Graphics and Performance in XAML for Windows Embedded
Provides guidance to help you match your product hardware platform with your desired customer experience and to maximize the performance of the user interface (UI) for your product.
- Create an Application Launcher in XAML for Windows Embedded
Describes how to develop a home screen for your device using the sample XAML for Windows Embedded home screen (application launcher) provided with Windows Embedded Compact 2013 .