<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>mikezh</title><link>http://blogs.msdn.com/b/mikezh/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Windows 8 Metro App – How to get a data grid like UI for a collection of Items?</title><link>http://blogs.msdn.com/b/mikezh/archive/2012/07/26/windows-8-metro-app-how-to-get-a-data-grid-like-ui-for-a-collection-of-items.aspx</link><pubDate>Thu, 26 Jul 2012 23:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10333961</guid><dc:creator>Zongmao Zhang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mikezh/rsscomments.aspx?WeblogPostID=10333961</wfw:commentRss><comments>http://blogs.msdn.com/b/mikezh/archive/2012/07/26/windows-8-metro-app-how-to-get-a-data-grid-like-ui-for-a-collection-of-items.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;&lt;span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;In developing windows 8 metro app, I didn&amp;rsquo;t find a data grid control that can be used to present a collection of items (e.g. Orders). With the sample code here, I am able to realize the following data grid like UI:&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-09/0652.DataGridLike.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-52-09/0652.DataGridLike.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Sampel XAML code&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;lt;Page&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;x:Class="Microsft.IT.Marketing.IOExplorer.IODetailForecast"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:local="using:Microsft.IT.Marketing.IOExplorer"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:d="http://schemas.microsoft.com/expression/blend/2008"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;mc:Ignorable="d"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;lt;Page.Resources&amp;gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;lt;SolidColorBrush x:Key="BlockBackgroundBrush" Color="#FF6BBD46"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;lt;SolidColorBrush x:Key="StackPanelBackgroundBrush" Color="#FFDDDDDD"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Style x:Key="TextBlockHeader" TargetType="TextBlock"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="Height" Value="15"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="Margin" Value="5,0,2,0"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="Foreground" Value="White"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Style&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Style x:Key="BorderHeader" TargetType="Border"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="Background" Value="{StaticResource BlockBackgroundBrush}"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="BorderThickness" Value="1"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Style&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Style x:Key="TextBlockCell" TargetType="TextBlock"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="Height" Value="15"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="Margin" Value="5,0,2,0"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="Foreground" Value="Black"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="FontSize" Value="10"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Style&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Style x:Key="BorderCell" TargetType="Border"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="Background" Value="White"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="BorderBrush" Value="{StaticResource BlockBackgroundBrush}"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Setter Property="BorderThickness" Value="1"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Style&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DataTemplate x:Key="DefaultItemDetailTemplate"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid HorizontalAlignment="Left"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid.RowDefinitions&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition Height="20"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid.RowDefinitions&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Background="{StaticResource BlockBackgroundBrush}"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel Orientation="Horizontal" Margin="0,0,0,0" Background="="{StaticResource StackPanelBackgroundBrush}" Width="250" HorizontalAlignment="Left"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Style="{StaticResource BorderCell}"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Text="{Binding ItemNumber}" Style="{StaticResource TextBlockCell}" Width="50"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Border&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Style="{StaticResource BorderCell}"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Text="{Binding Description}" Style="{StaticResource TextBlockCell}" Width="120"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Border&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Style="{StaticResource BorderCell}"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;TextBlock Text="{Binding Date}" Style="{StaticResource TextBlockCell}" Width="80"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Border&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/DataTemplate&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;lt;/Page.Resources&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid Background="{StaticResource ApplicationPageBackgroundBrush}"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid.RowDefinitions&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition Height="22"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;RowDefinition Height="*"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid.RowDefinitions&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel Grid.Row="0" Orientation="Horizontal" Background="{StaticResource StackPanelBackgroundBrush}"/&amp;gt;" Width="250" HorizontalAlignment="Left"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Style="{StaticResource BorderHeader}"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Text="Item #" Style="{StaticResource TextBlockHeader}" Width="50"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Border&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Style="{StaticResource BorderHeader}"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Text="Description" Style="{StaticResource TextBlockHeader}" Width="120"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Border&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Style="{StaticResource BorderHeader}"&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Text="Date" Style="{StaticResource TextBlockHeader}" Width="80"/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Border&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ItemsControl Grid.Row="1"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ItemsSource="{Binding Items}"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ItemTemplate="{StaticResource DefaultItemDetailTemplate}"&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;lt;/Page&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10333961" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/DataGrid/">DataGrid</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Metro+App/">Metro App</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Data+Grid/">Data Grid</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Metro+Application/">Metro Application</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/windows+8/">windows 8</category></item><item><title>Play Audio in Windows Phone Application</title><link>http://blogs.msdn.com/b/mikezh/archive/2012/05/17/play-audio-in-windows-phone-application.aspx</link><pubDate>Fri, 18 May 2012 00:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10306521</guid><dc:creator>Zongmao Zhang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mikezh/rsscomments.aspx?WeblogPostID=10306521</wfw:commentRss><comments>http://blogs.msdn.com/b/mikezh/archive/2012/05/17/play-audio-in-windows-phone-application.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;There are a&amp;nbsp;few options to play audio in windows phone application which I tried and worked:&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;strong&gt;1. Use XNA Library to Play a Wave Sound&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;Add Microsoft.Xna.Framework.dll to yourphone application project, and&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; Microsoft.Xna.Framework;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; Microsoft.Xna.Framework.Audio;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;Than you can use the following code snippet to play a sound (don&amp;rsquo;t forget to add the sound file into your project&amp;rsquo;s Sound folder)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; dingSoundFile = &lt;span style="color: #993300;"&gt;"Sound/Ding.wav"&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; stream = &lt;span style="color: #33cccc;"&gt;TitleContainer&lt;/span&gt;.OpenStream(dingSoundFile);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (stream != &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; effect = &lt;span style="color: #33cccc;"&gt;SoundEffect&lt;/span&gt;.FromStream(stream);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #33cccc;"&gt;FrameworkDispatcher&lt;/span&gt;.Update();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;effect.Play();&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;Or&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; dingSoundFile = &lt;span style="color: #993300;"&gt;"Sound/Ding.wav"&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #33cccc;"&gt;SoundEffectAction&lt;/span&gt; soundEffect = new &lt;span style="color: #33cccc;"&gt;SoundEffectAction&lt;/span&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;soundEffect.Source = dingSoundFile;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;soundEffect.Play();&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;strong&gt;2. Use MediaElement to Play MP3&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;In xaml, use a media element. If you set &lt;span style="color: #ff6600;"&gt;AutoPlay&lt;/span&gt;=&lt;span style="color: #0000ff;"&gt;"True"&lt;/span&gt;, it will just play when the page loads:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #993300;"&gt;MediaElement &lt;/span&gt;&lt;span style="color: #ff6600;"&gt;Source&lt;/span&gt;="&lt;span style="color: #0000ff;"&gt;Sound/Sleep Away.mp3&lt;/span&gt;" &lt;span style="color: #ff6600;"&gt;AutoPlay&lt;/span&gt;=&lt;span style="color: #0000ff;"&gt;"True"/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;If you don&amp;rsquo;t specify a Source in the xaml, you can use a play button to start the play:&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;lt;&lt;span style="color: #993300;"&gt;MediaElement&lt;/span&gt; &lt;span style="color: #ff6600;"&gt;x:Name&lt;/span&gt;=&lt;span style="color: #0000ff;"&gt;"MediaElement1"&lt;/span&gt; &lt;span style="color: #ff6600;"&gt;AutoPlay&lt;/span&gt;=&lt;span style="color: #0000ff;"&gt;"False"&lt;/span&gt; &lt;span style="color: #ff6600;"&gt;MediaOpened&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="MediaElement_MediaOpened"/&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;private void&lt;/span&gt; Play_Click(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;span style="color: #33cccc;"&gt;RoutedEventArgs&lt;/span&gt; e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;MediaElement1&lt;/span&gt;.Source = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #33cccc;"&gt;Uri&lt;/span&gt;(&lt;span style="color: #993300;"&gt;"Sound/Sleep Away.mp3"&lt;/span&gt;, &lt;span style="color: #33cccc;"&gt;UriKind&lt;/span&gt;.Relative);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;MediaElement1&lt;/span&gt;.Position = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; &lt;span style="color: #33cccc;"&gt;TimeSpan&lt;/span&gt;(0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;private void&lt;/span&gt; MediaElement_MediaOpened(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;span style="color: #33cccc;"&gt;RoutedEventArgs&lt;/span&gt; e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;MediaElement1&lt;/span&gt;.Play();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;private void&lt;/span&gt; Pause_Click(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, &lt;span style="color: #33cccc;"&gt;RoutedEventArgs&lt;/span&gt; e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MediaElement1&lt;/span&gt;.Pause();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;strong&gt;3. Play Background Audio&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;You may want your Windows Phone application continues playing audio even when the application is no longer in the foreground. &lt;/span&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;This can be achieved by implementing an audio playback agent. Refer to &lt;a href="http://msdn.microsoft.com/en-us/library/hh202978(v=VS.92).aspx"&gt;http://msdn.microsoft.com/en-us/library/hh202978(v=VS.92).aspx&lt;/a&gt;&amp;nbsp;for details&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;&lt;strong&gt;4. Play Audio by Implementing TargetedTriggerAction&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: small;"&gt;Refer to &lt;a href="http://www.japf.fr/2010/08/sound-effect-in-wp7-sl-application/"&gt;http://www.japf.fr/2010/08/sound-effect-in-wp7-sl-application/&lt;/a&gt;&amp;nbsp;for details&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10306521" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Sound/">Sound</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Audio/">Audio</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Windows+Phone+Application/">Windows Phone Application</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/WP7/">WP7</category></item><item><title>IIS AppCmd Quick Reference</title><link>http://blogs.msdn.com/b/mikezh/archive/2012/04/23/iis-appcmd-quick-reference.aspx</link><pubDate>Mon, 23 Apr 2012 18:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10296723</guid><dc:creator>Zongmao Zhang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mikezh/rsscomments.aspx?WeblogPostID=10296723</wfw:commentRss><comments>http://blogs.msdn.com/b/mikezh/archive/2012/04/23/iis-appcmd-quick-reference.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;IIS appcmd is very handy for deployment automation of .NET web applications. The appcmd can be found at %systemroot%\system32\inetsrv or %systemroot%\\SysWOW64\inetsrv on web server. Please refer to &lt;a href="http://technet.microsoft.com/en-us/library/cc731196(v=ws.10).aspx"&gt;IIS Administration Tools&lt;/a&gt; for details. The following is a quick reference for the most common usages of appcmd in web application deployment automation.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;1. Add Site&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd add site /name:MySite /bindings:http://*:80 /physicalpath:&amp;rdquo;d:\MySitePath&amp;rdquo;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;2. Add App Pool&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;span style="color: #0000ff;"&gt;appcmd add apppool /name:MyAppPool /managedRuntimeVersion:v4.0&lt;/span&gt; (e.g. targeting .NET 4.0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;3. Set App Pool Credential&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd set config /section:applicationPools /[name='MyAppPool'].processModel.identityType:SpecificUser /[name='MyAppPool'].processModel.userName:MyDomain\MyAccount /[name='MyAppPool'].processModel.password:MyAccountPassword&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;4.Add App&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd add app /site.name:"MySite" /path:/MyApp /physicalpath:"d:\MySitePath\MyApp"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;5. Assign/Change App Pool to an App&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd set app "MySite/MyApp" /applicationpool:MyAppPool&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;6. List (App, Site, AppPool, etc.)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd list app&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd list site&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd list apppool&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;7. Enable/Disable Anonymous Authentication (True to Enable, False to Disable)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd set config "MySite/MyApp" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"True" /commit:apphost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;8. Enable Windows Authentication (True to Enable, False to Disable)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd.exe set config "MySite/MyApp" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;9. Change Windows Authentication Providers (NTLM or Negotiate)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;span style="color: #0000ff;"&gt;appcmd set config MySite/MyApp -section:system.webServer/security/authentication/windowsAuthentication /~providers /commit:apphost&lt;/span&gt; (clear provider list)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;span style="color: #0000ff;"&gt;appcmd set config MySite/MyApp -section:system.webServer/security/authentication/windowsAuthentication /-providers.[value='NTLM'] /commit:apphost&lt;/span&gt; (set to NTLM)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;span style="color: #0000ff;"&gt;appcmd set config MySite/MyApp -section:system.webServer/security/authentication/windowsAuthentication /+providers.[value='Negotiate'] /commit:apphost&lt;/span&gt; (set to Negotiate)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;10. Add Custom Header &amp;ndash; for example, nosniff header or IE 7 compatiable header&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd&amp;nbsp; set config MySite -section:system.webServer/httpProtocol /+customHeaders.[name='X-Content-Type-Options',value='nosniff'] /commit:apphost&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd set config MySite -section:system.webServer/httpProtocol /+customHeaders.[name='X-UA-Compatible',value='IE=EmulateIE7'] /commit:apphost&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;11. Add Default Document - error if it exists already&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd set config "MySite/MyApp" /section:defaultDocument /+files.[value='default.asmx']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;12. Delete App and Site - error if it doesn&amp;rsquo;t&amp;nbsp; exist&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd delete app "MySite/MyApp"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd delete site "MySite"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;13. Delete AppPool- error if it doesn&amp;rsquo;t exist or it is used by app&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd delete apppool MyAppPool&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;14. Backup and Restore IIS Settings&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd add backup MyBackup&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd restore backup MyBackup&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;&lt;strong&gt;15. HTTPS Binding if you are using HTTP over SSL&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff; font-family: tahoma,arial,helvetica,sans-serif; font-size: x-small;"&gt;appcmd set site /site.name:"MyApp" /+bindings.[protocol='https',bindingInformation='*:443:MySSLCertificate']&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10296723" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/IIS+AppCmd+Web+Application+Deployment+Automation/">IIS AppCmd Web Application Deployment Automation</category></item><item><title>Silverlight Accessibility Coding Practice</title><link>http://blogs.msdn.com/b/mikezh/archive/2012/04/06/silverlight-accessibility-coding-practice.aspx</link><pubDate>Fri, 06 Apr 2012 15:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10291476</guid><dc:creator>Zongmao Zhang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mikezh/rsscomments.aspx?WeblogPostID=10291476</wfw:commentRss><comments>http://blogs.msdn.com/b/mikezh/archive/2012/04/06/silverlight-accessibility-coding-practice.aspx#comments</comments><description>&lt;p&gt;Accessibility is about making your applications usable by people with limitations that prevent or impede the use of conventional user interfaces. Microsoft Silverlight provides built-in keyboard support and support for screen readers, which leverages accessibility frameworks that already exist for use with HTML and other UI technologies. The built-in support enables a basic level of accessibility that you can customize with very little work by setting a handful of properties. For more information, you can refer to &lt;a href="http://www.silverlight.net/learn/advanced-techniques/localization-and-accessibility/making-silverlight-applications-accessible"&gt;Silverlight Accessibility&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/windows/gg591270"&gt;Silverlight Accessibility for Developers&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Silverlight works with screen reader software out of the box. However, you will normally need to modify some settings for optimal behavior or to implement additional support. Here are some essentials to make this happen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windowless Mode - Using the Windowless Mode in Silverlight renders it inaccessible. Assistive Technology (AT) clients are unable to see the Silverlight application in the UI Automation Tree in this situation. Using the standard mode eliminates this issue.&amp;nbsp; The windowless mode property can be set by &lt;span style="color: #ff0000;"&gt;&amp;lt;param name="windowless" value="false"/&amp;gt;&lt;/span&gt; in the Silverlight object hosting page (aspx or html). Use the default should be fine if you haven't changed it yourself.&lt;/li&gt;
&lt;li&gt;Set the &lt;span style="color: #0000ff;"&gt;AutomationProperties.Name&lt;/span&gt; of each UI control. For example: &lt;span style="color: #ff0000;"&gt;&amp;lt;TextBox x:Name="TextProductName&amp;rdquo; AutomationProperties.Name="Product Name"/&amp;gt;&lt;/span&gt;. It can also be set by doing data binding to a view model&amp;rsquo;s property. There are other ways to set the automation property for accessibility support. Refer to &lt;a href="http://www.silverlight.net/learn/advanced-techniques/localization-and-accessibility/making-silverlight-applications-accessible"&gt;Silverlight Accessibility&lt;/a&gt; for more details.&lt;/li&gt;
&lt;li&gt;Use IsTabStop, TabIndex, and TabNavigation to control Tab Stops in xaml or programmatically. TabNavigation has three values: Once, Local and Cycle. The default is &amp;ldquo;Once&amp;rdquo;. If your page uses data grid, tree view, or custom control that contains more than one UI elements, you may want to set TabNavigation=&amp;rdquo;Local&amp;rdquo; so that you can tab in, tab through all UI elements within the control and tab out at the end.&lt;/li&gt;
&lt;li&gt;Control Focus &amp;ndash; set default focus when page loads. For dynamically generated contents (e.g. add a row to a data grid), set the focus to the first actionable UI element (e.g. TextBox, CheckBox, Button, DropDown, etc.). If you use popup, set focus back to the wanted UI element when the popup closes.&lt;/li&gt;
&lt;li&gt;Add similar support to your own custom controls.&lt;/li&gt;
&lt;li&gt;In dynamically generated controls, you can set the automation property programmatically: &lt;span style="color: #0000ff;"&gt;AutomationProperties.SetName&lt;/span&gt;(DependencyObject element, string value).&lt;/li&gt;
&lt;li&gt;Override the &lt;span style="color: #0000ff;"&gt;public override string&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ToString()&lt;/span&gt; of any data contract that are used by data binding so that the TA client can read it properly. For example, if you don&amp;rsquo;t do this, the items in dropdowns may not be read properly.&lt;/li&gt;
&lt;li&gt;Try to avoid scrollbars. Use other options to accommodate large data or content. For example, use paging other than scrollbar with data grid.&lt;/li&gt;
&lt;li&gt;Debugging: the user interface of a Silverlight application is represented by a visual tree of UI elements. You can view this accessibility tree using free tools such as UIA Verify or commercial tools such as Silverlight Spy. This is useful to confirm the values of the attached &lt;span style="color: #0000ff;"&gt;AutomationProperties&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;Always use&amp;nbsp;AT client (e.g. screen reader software) to test your application.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10291476" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/TreeView/">TreeView</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Accessibility/">Accessibility</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Silverlight/">Silverlight</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/DataGrid/">DataGrid</category></item><item><title>Silverlight Tree View Accessibility</title><link>http://blogs.msdn.com/b/mikezh/archive/2012/04/03/silverlight-accessibility.aspx</link><pubDate>Wed, 04 Apr 2012 04:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10290603</guid><dc:creator>Zongmao Zhang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/mikezh/rsscomments.aspx?WeblogPostID=10290603</wfw:commentRss><comments>http://blogs.msdn.com/b/mikezh/archive/2012/04/03/silverlight-accessibility.aspx#comments</comments><description>&lt;p&gt;Silverlight TreeView is a very common user control for hierarchical data display. For example, it can be used to display organization hierarchy or any other entity hierarchy data. Within each treeview node, you may have more than one user controls, like a CheckBox + a TextBox. This presents a challenge to user accessibility:Tab &amp;nbsp;key will not tab through each control within&amp;nbsp;a TreeView node if you use the default styles or item template. Tab key only stops once at each node.&lt;/p&gt;
&lt;p&gt;To get Tab key tab through each control within each node, I used a hierarchy data template as follows:&lt;/p&gt;
&lt;p&gt;&amp;lt;ctrl:HierarchicalDataTemplate ItemsSource="{Binding Children}"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;span style="background-color: #ffff00;"&gt;ContentControl TabNavigation="Local"&lt;/span&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Border Background="Transparent"&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Checkbox IsChecked="{Binding IsSelected}&amp;rdquo;/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBox Text="{Binding PercentValue }&amp;rdquo;/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Border&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;span style="background-color: #ffff00;"&gt;/ContentControl&lt;/span&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/ctrl:HierarchicalDataTemplate&amp;gt;&lt;/p&gt;
&lt;p&gt;The key here is to use a ContentControl in HierarchicalDataTemplate and set TabNavigation="Local". With this, I am able to tab through the checkbox and the textbox within&amp;nbsp;each tree node.&lt;/p&gt;
&lt;p&gt;Note: ctrl is referred to the following name space:&lt;/p&gt;
&lt;p&gt;xmlns:ctrl="clr-namespace:System.Windows;assembly=System.Windows.Controls&amp;rdquo;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10290603" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/TreeView/">TreeView</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Accessibility/">Accessibility</category><category domain="http://blogs.msdn.com/b/mikezh/archive/tags/Silverlight/">Silverlight</category></item></channel></rss>