Windows Phone 7 Development : Working with Controls and Themes - Introducing the Metro Design System

2/8/2011 4:25:31 PM
The big idea behind the Windows Phone 7 design system (Metro) is to direct users to the content they want using design elements that are both effective in conveying their message and attractive. The UI Design and Interaction Guide for Windows Phone 7 (available as a PDF download from specifically states that visual elements within applications "should encourage playful exploration so that the user feels a sense of wonder and excitement" when using your application. Microsoft strongly encourages all application developers to adopt Metro design principles in their applications. Fortunately, to help those of us who may not be particularly strong in graphic design, Microsoft ensured that all controls available for you to build applications (i.e., text box, button, etc.) are Metro-compliant by default. These controls that ship with Windows Phone 7 development tools already have the look and feel dictated by Metro UI guidelines—it is our job as developers that we preserve that look and feel throughout our applications.

When you first start working with standard controls within Windows Phone 7 applications, you may be surprised by their minimalistic, two-dimensional look. That appearance, however, emphasizes another one of the main principles of Metro UI design: "Delight through content instead of decoration." Microsoft encourages developers to reduce the complexity of visual elements that are not part of content and to communicate with users of their applications as directly as possible. According to the Metro designers, the content and the functionality of the application should be the most engaging factor of the Windows Phone 7 application.

Another pillar of Metro UI is the use of a standard contemporary-looking font. Segoe WP is the standard system font on Windows Phone 7 devices and it is a Unicode font. It is available in five styles:

  1. Regular

  2. Bold

  3. Semi-bold

  4. Semi-light

  5. Black

You can also embed your own fonts in any application you write, but they will be available for use only within your application and not outside of it. To conform with the Metro guidelines, however, it is probably wise to stick with the standard fonts that ship with the tools.

1. Windows Phone Chrome

The term Windows Phone Chrome refers to two areas on the device screen, one at the top and the other at its bottom, as illustrated in Figure 9-1. The System Tray is one of two primary components of Windows Phone Chrome; the Application Bar is the other.

The System Tray is the top portion of Windows Phone Chrome and contains several indicators that display system-level status information. The System Tray displays the following icons, left to right, in the order listed here.

  1. Signal strength

  2. Data connection

  3. Call forwarding

  4. Roaming

  5. Wireless network signal strength

  6. Bluetooth status

  7. Ringer mode

  8. Input status

  9. Battery power level

  10. System clock


The screen shown in Figure 1 is the emulator screen, and it does not include all of the items mentioned in the preceding list.

By default, only the system clock is visible at all times. To make other items visible, you need to double-tap (double-click in the emulator) in the System Tray area. These indicators slide into view for approximately eight seconds before sliding out of view. Note that although you can programmatically hide the System Tray, it is not a recommended practice under Metro guidelines.

To quickly recap, the Application Bar is limited to four icons—if there are more navigational items to display, they should be put inside the menu items. There is a set of default Application Bar icons included with each distribution of Windows Phone 7 tools, and it can be used to build basic Application Bars quickly.

Figure 1. Windows Phone 7 Chrome

2. Screen Orientations

Windows Phone 7 supports three screen orientations: portrait, landscape left, and landscape right. In portrait orientation, the page is vertically oriented with hardware buttons appearing at the bottom of the device. Portrait orientation is the default orientation of the device, and the Start screen is always shown in portrait orientation. In Landscape left, the System Tray appears on the left of the device, and in Landscape right, the System Tray appears on the right.

Your application cannot switch the orientation of its screen by itself, since the Orientation property is read-only. You can, however, set a fixed orientation, where you disallow application support for certain screen orientations. Some system components can adjust to changes in orientation. For example, application bar icons automatically rotate when the device changes from portrait to landscape mode. Other components with similar orientation-aware behaviors include the System Tray, Application Bar Menu, Volume/Ring/Vibrate Display, Push Notifications, and Dialogs.

Having discussed major principles and some of the components of Metro UI, it is time to turn our attention to the support for themes on Windows Phone 7 devices. Themes make the phone more personal, which goes hand in hand with the Metro guideline that the experience of using the phone should be an engaging one.

  •  Windows Phone 7 Development : WebBrowser Control - Saving Web Pages Locally
  •  Programming the Mobile Web : Geolocation and Maps - Detecting the Location (part 3)
  •  Programming the Mobile Web : Geolocation and Maps - Detecting the Location (part 2) - Google Gears
  •  Programming the Mobile Web : Geolocation and Maps - Detecting the Location (part 1) - W3C Geolocation API
  •  Programming the Mobile Web : Geolocation and Maps - Location Techniques
  •  iPhone Programming : Table-View-Based Applications - Connecting the Controller to the Model
  •  Programming the Mobile Web : Mobilizing WordPress and Other CMSs
  •  Programming the Mobile Web : Server-Side Browser Detection and Content Delivery - Content Adaptation
  •  Programming the Mobile Web : Multimedia and Streaming
  •  Mobile Application Security : BlackBerry Security - Development and Security Testing
  •  Mobile Application Security : BlackBerry Security - Introduction to Platform
  •  Windows Phone 7 Development : Using a WebBrowser Control to Display Dynamic Content
  •  Windows Phone 7 Development : Using a WebBrowser Control to Display Local HTML Content
  •  Windows Mobile Security - Networking
  •  Windows Mobile Security - Local Data Storage
  •  Windows Mobile Security - Permissions and User Controls
  •  Windows Phone 7 Development : Using a WebBrowser Control to Display Web Content
  •  Windows Phone 7 Development : Adding a WebBrowser Control
  •  Programming the Mobile Web : Content Delivery (part 3)
  •  Programming the Mobile Web : Content Delivery (part 2) - File Delivery
    Top 10
    Web Security : Automating with LibWWWPerl - Testing Session Fixation
    Web Security : Automating with LibWWWPerl - Checking Session Expiration
    Visual Studio Team System 2008 : Deploying and Running Tests (part 2)
    Visual Studio Team System 2008 : Deploying and Running Tests (part 1) - Remote deployment, Deploy additional files
    Programming Excel with VBA and .NET : Expressions, Exceptions
    Programming Excel with VBA and .NET : Loops
    Programming Excel with VBA and .NET : Conditional Statements
    iOS SDK : Property Lists and Archiving - Archiving
    iOS SDK : Property Lists and Archiving - An iOS Application’s Directory Structure, Property Lists
    Game Programming with DirectX : Time-Based Simulations (part 3) - The Main Source File
    Most View
    Adobe Flash Catalyst CS5 : Wireframing an Application in Flash Catalyst - Working with Blend Modes, Add Wireframe Components
    The Most Hi-end Compacts : Leica D-Lux 5 Titanium, Leica D-Lux 5 Titanium
    Managing Connection and Proxy Settings
    Windows Server 2008 : Creating Batch Files (part 2)
    Full Frame DSLR And Violent Fight
    Using SQL Server 2005 Integration Services : Working with Integration Services Packages (part 1) - Control Flow
    Windows 7 : Using Desktop Gadgets (part 2) - Using the Clock, CPU Meter, Weather gadget
    Corsair Obsidian 800D
    Tracking Results and Measuring Success : Tying SEO to Conversion and ROI
    Windows Server 2003 : Server Clustering (part 3) - Creating a New Cluster Group, Adding a Resource to a Group
    Linux Mint 10 : Tantalizing terminals
    Programming the Mobile Web : Testing and Debugging (part 3) - Client-Side Debugging
    Sony Xperia Tablet S – A Striking Product
    SharePoint 2010 : Business Intelligence - Excel Services (part 1) - Accessing Excel Services Over REST
    Barnes & Noble’s Nook HD Review – A Tablet With Gorgeous Screen
    Linux - Bad Maths
    Programming the Mobile Web : WebKit CSS Extensions (part 2) - Reflection Effects & Masked Images
    Where Is My Hard Drive Capacity? (Part 2) - Beat the browser
    Fujitsu Unveils The Stylistic Q702 Hybrid Tablet And The Lifebook T902 Convertible Laptop
    What’s To Like In Office 2013? (Part 1)