<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Walaa's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/walaa/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/walaa/feed.xml</link>
    <description>Windows 8, Windows Azure, Windows Phone, .NET, C#, XAML, and more.</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:51:51 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>UWP Tile Generator Extension</title>
      <link>https://docs.microsoft.com/archive/blogs/walaa/uwp-tile-generator-extension</link>
      <pubDate>Tue, 26 Jan 2016 02:29:00 GMT</pubDate>
      <dc:creator><![CDATA[Walaa M. Atef]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/walaa/2016/01/26/uwp-tile-generator-extension/</guid>
      <description><![CDATA[Developing Universal Windows Platform apps comes with a small burden, to create multiple tile sizes...]]></description>
      <content:encoded><![CDATA[<p>Developing Universal Windows Platform apps comes with a small burden, to create multiple tile sizes to accommodate for multiple tile sizes on different screen sizes.<br />Thanks to Shen Chauhan, which has created a Visual Studio Extension, this might end up to just be a click of a button.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/7206.menu.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/7206.menu.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/7206.menu.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/7206.menu.PNG" alt="" border="0" /></a></p>
<p>Give it a go, <a title="UWP Tile Generator" href="https://visualstudiogallery.msdn.microsoft.com/09611e90-f3e8-44b7-9c83-18dba8275bb2">UWP Tile Generator</a></p>]]></content:encoded>
    </item>
    <item>
      <title>GridView &amp; Multiple Item Templates</title>
      <link>https://docs.microsoft.com/archive/blogs/walaa/gridview-multiple-item-templates</link>
      <pubDate>Sat, 22 Feb 2014 23:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Walaa M. Atef]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/walaa/2014/02/22/gridview-multiple-item-templates/</guid>
      <description><![CDATA[Ever wondered how to have a GridView with multiple layouts/sizes for its items.
I see&nbsp;some...]]></description>
      <content:encoded><![CDATA[<p><span style="color: black; font-family: 'Arial','sans-serif'; font-size: 9pt;">Ever wondered how to have a GridView with multiple layouts/sizes for its items.</span></p>
<p><span style="color: black; font-family: 'Arial','sans-serif'; font-size: 9pt;">I see&nbsp;some apps using the Windows 8 Grid project template, and never change how items&nbsp;would look, which might give a sense of boredom of having the same even<br />square look everywhere.</span></p>
<p><span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">The goal of this post is to learn how to change the following</span></p>
<p><span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/8666.Blog1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/8666.Blog1.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/8666.Blog1.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/8666.Blog1.png" alt="" border="0" /></a></span></p>
<p><span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">fig.1</span></p>
<p><span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Into the following:</span></span></p>
<p><span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/1682.Blog2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/1682.Blog2.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/1682.Blog2.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/1682.Blog2.png" alt="" border="0" /></a></span></span></p>
<p>(The colors are used to highlight the change)</p>
<p>Let&rsquo;s walkthrough it step by step. I&rsquo;ll be using Visual Studio 2013, and XAML/C#</p>
<p>The project is attached, so please forgive me for the code screenshots :)</p>
<p>1-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new Windows Store Project from the Grid project template.</p>
<p>2-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Go ahead and run the project, you will find the application starts to the main page (GroupedItemsPage.xaml in our case), and you will see a similar layout to fig.1</p>
<p>3-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Let&rsquo;s inspect the XAML in the GroupedItemsPage, you&rsquo;ll find the DataTemplate used to layout the item is defined inside the GridView as seen in the next fig.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/0243.Blog3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/0243.Blog3.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/0243.Blog3.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/0243.Blog3.png" alt="" border="0" /></a></p>
<p>4-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;First thing to do and as a recommended practice, extract the DataTempate outside of the GridView definition. You have the option to have it defined at the page level (inside the &lt;Page.Resources&gt; tag.) or on the App level in Resources Dictionary file.</p>
<p>5-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In the first case, you&rsquo;d give it a name (x:Name=&rdquo;&hellip;&rdquo;) and then set the GridView&rsquo;s <span style="color: #0000ff;">ItemTemplate</span> property to it. In the later case you&rsquo;ll need to define the ResourceDictionary file in the App.XAML, we&rsquo;ll explain this later.</p>
<p>6-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Currently, I&rsquo;ll use the first approach, so I called it &ldquo;HomeDataTemplate&rdquo;, and I&rsquo;ve moved the height property from the first text box to its container StackPanel, just an optional step for my own preference.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/8015.Blog4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/8015.Blog4.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/8015.Blog4.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/8015.Blog4.png" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/0844.Blog5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/0844.Blog5.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/0844.Blog5.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/0844.Blog5.png" alt="" border="0" /></a></span></span></p>
<p>7-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Please run the app and you should get the same layout as before, nothing should be changed.</p>
<p>8-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Let&rsquo;s define two new data templates just under the HomeDataTemplate definition. We can copy from the HomeDataTemplate.</p>
<p>9-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Name the first one &ldquo;HomeWideDataTemplate&rdquo;. We want this to be as wide as 2 originally displayed items, and since the original data template has a width of 250, and considering the 10px spacing between items, this one should have 510 width, while we are at it, I&rsquo;ve removed the image from the border tag, and changed the background to be Red.</p>
<p>10-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I&rsquo;d name the second template &ldquo;HomeLongDataTemplate&rdquo;, and set its height to 510, and the background to Yellow.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/4863.Blog6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/4863.Blog6.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/4863.Blog6.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/4863.Blog6.png" alt="" border="0" /></a></p>
<p>11-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Now we need to use a class to select which data template to use for which item. The class should derive from <span style="color: #0000ff;">DataTemplateSelector</span>, it should have public properties, one for each data template and their type should be <span style="color: #0000ff;">DataTemplate</span> (no wonder). Then you&rsquo;ll need to override one of the 2 <span style="color: #0000ff;">SelectTemplateCore</span> overloads, in which you should have some logic to return any of the DataTemplate properties, here is an implementation.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/7853.Blog7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/7853.Blog7.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/7853.Blog7.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/7853.Blog7.png" alt="" border="0" /></a></p>
<p>12-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Now there is nothing tying this class to the XAML templates, and nothing is tying it to the GridView. For this we define an object of this class in the &lt;Page.Resources&gt; of the page in hand, and set each of its dataTemplale properties to those properties defined in the same page (the ones we need to use). Also we need to remove the ItemTemplate property setting from the GridView and add a setting for the <span style="color: #0000ff;">ItemTemplateSelector</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/5050.Blog8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/5050.Blog8.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/5050.Blog8.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/5050.Blog8.png" alt="" border="0" /></a></p>
<p>13-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Now if you run the app, you will see a change but not the final product you wish to see.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/1830.Blog9.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/1830.Blog9.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/1830.Blog9.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/1830.Blog9.png" alt="" border="0" /></a></p>
<p>14-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;What happens here is that, the first item (the wide one), has set the default cell dimension of each item. We need to change that to have each item occupy different dimensions.</p>
<p>For this we&rsquo;ll assume that the original item size is the cell default dimension, and that we need the wide item to occupy 2 cells horizontally (span 2 columns), and the long item to span 2 rows.</p>
<p>To implement this first we need to change the internal Grid used in the GridView to use <span style="color: #0000ff;">VariableSizedWrapGrid</span> in 2 positions as follows.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/7875.Blog10.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/7875.Blog10.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/7875.Blog10.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/7875.Blog10.png" alt="" border="0" /></a></p>
<p>15-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notice that, in the GroupStyle.Panel, you need to set the <span style="color: #0000ff;">ItemWidth</span> &amp; <span style="color: #0000ff;">ItemHeight</span> properties to the desired cell size (don't confuse them with the Width &amp; Height properties), also you need to set a right margin if you want to separate between groups.</p>
<p>16-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Then you&rsquo;ll need to modify the selector class to ask for column &amp; row spans for the <span style="color: #0000ff;">UIElement</span> where appropriate.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/5635.Blog11.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/5635.Blog11.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/5635.Blog11.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/5635.Blog11.png" alt="" border="0" /></a></p>
<p>The result should be like the following</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/3276.Blog12.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/3276.Blog12.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/3276.Blog12.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/3276.Blog12.png" alt="" border="0" /></a></p>
<p>Final Notes:</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The template Selector class, can be reused at different pages, provided that you will need a wide template that spans 2 columns, and another that spans 2 rows, and so you&rsquo;ll just need to create an object from it, and provide the templates to be used.</p>
<p>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You can have whatever logic you&rsquo;d like inside the selector class to select which template to return. This can depend on the data item properties, or can just depend on the order/index of the item being served. In the later case you might use a counter member on the class.</p>
<p><br /><strong>(Edited on 2/28/2014)</strong></p>
<p>Let's try to use the same TemplateSelector Class in the GroupDetailPage.</p>
<p>We need to convert the following layout:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/8741.Blog13.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/8741.Blog13.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/8741.Blog13.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/8741.Blog13.png" alt="" border="0" /></a></p>
<p>To the following layout:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/5340.Blog14.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/5340.Blog14.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/5340.Blog14.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/5340.Blog14.png" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<p>Using an object of the selector class we can have a wide item and another long one according to the same logic that was set in the class.</p>
<p>The only difference here is that this grid doesn't have groups, so we'd need to set the <span style="color: #0000ff;">ItemHeight</span> and <span style="color: #0000ff;">ItemWidth </span>in the <span style="color: #0000ff;">ItemsPanelTemplate.</span></p>
<p><span style="color: #000000;">Please note that the margins have been taken into consideration when determining the cell dimension.</span></p>
<p><span style="color: #0000ff;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/0652.Blog15.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/0652.Blog15.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/61/12/0652.Blog15.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-61-12/0652.Blog15.png" alt="" border="0" /></a></span></p>
<p><span style="color: #000000;">** There remains one question which I'm looking for its answer.<br />Take a good look at the GroupedItemsPage, you will notice that Groups with fewer items will still occupy the same width as does the first Group.<br />i,e, The first group sets the default, and there must be a way to auto set the width.<br /><br />If you have the answer please share it in the comments.</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/50/24/01/TemplateSelector.rar" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-50-24-01/TemplateSelector.rar">TemplateSelector.rar</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Grab the 8.1 RTM Windows</title>
      <link>https://docs.microsoft.com/archive/blogs/walaa/grab-the-8-1-rtm-windows</link>
      <pubDate>Mon, 09 Sep 2013 15:28:52 GMT</pubDate>
      <dc:creator><![CDATA[Walaa M. Atef]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/walaa/2013/09/09/grab-the-8-1-rtm-windows/</guid>
      <description><![CDATA[Yesterday,Steve Guggs announced (through his blog) the availability of Windows 8.1 RTM on MSDN and...]]></description>
      <content:encoded><![CDATA[<p>Yesterday,Steve Guggs announced (<a title="through his blog" href="https://blogs.msdn.com/b/stevengu/archive/2013/09/09/download-windows-8-1-rtm-visual-studio-2013-rc-and-windows-server-2012-r2-rtm-today.aspx?wa=wsignin1.0" target="_blank">through his blog</a>) the availability of Windows 8.1 RTM on MSDN and Technet.</p>
<p>In the same blog post he announced the availability of Visual Studio 2013 RC and Windows Server 2012 R2 RTM too.</p>
<p>Read all the details please refer to Guggs' post.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Ask users for Feedback</title>
      <link>https://docs.microsoft.com/archive/blogs/walaa/ask-users-for-feedback</link>
      <pubDate>Wed, 28 Aug 2013 07:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Walaa M. Atef]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/walaa/2013/08/28/ask-users-for-feedback/</guid>
      <description><![CDATA[One of the out-of-the-box mechanisms that's available in Windows Store Apps, is the "Rate &amp;...]]></description>
      <content:encoded><![CDATA[<p>One of the out-of-the-box mechanisms that's available in Windows Store Apps, is the "<strong>Rate &amp; Review</strong>" option given to app users to send their feedback to the app publishers, and to other prospect users too.</p>
<p>Unfortunately a small percentage of those who download and use an application would give feedback, unless your app is extremely good (or bad), missing a feature that everybody is craving for, the odds are you are going to get few number of reviews.</p>
<p>You can increase the chances to get feedback from users by reminding them to do so. But you have to take care not to be too nagging, to the extent to push them away from your app.</p>
<p>Here is how you can do it. (all code is in the main page of your application).</p>
<p>First we need a couple of member variables/references to local and roaming storage where we are going to save a setting whether we should&nbsp;ask the user for feedback or not.</p>
<div style="border: 1px solid #000080; color: #000000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt;">
<div style="padding: 2px 5px; overflow: auto; max-height: 200px; background-color: #ffffff;"><span style="background: #ffffff; color: #2b91af;">ApplicationDataContainer</span><span style="background: #ffffff; color: #000000;"> _roamingData = </span><span style="background: #ffffff; color: #2b91af;">ApplicationData</span><span style="background: #ffffff; color: #000000;">.Current.RoamingSettings;</span><br /><br /><span style="background: #ffffff; color: #2b91af;">ApplicationDataContainer</span><span style="background: #ffffff; color: #000000;"> _localData = </span><span style="background: #ffffff; color: #2b91af;">ApplicationData</span><span style="background: #ffffff; color: #000000;">.Current.LocalSettings;</span></div>
</div>
<p>It's a good idea to check for Internet connectivity before asking the user to submit his feedback, obviously he won't be able to access the store app to do so, if there is no connectivity.</p>
<p>For this I use the following method.</p>
<div style="border: 1px solid #000080; color: #000000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt;">
<div style="padding: 2px 5px; overflow: auto; max-height: 200px; background-color: #ffffff;"><span style="background: #ffffff; color: #0000ff;">public </span><span style="background: #ffffff; color: #0000ff;">static </span><span style="background: #ffffff; color: #0000ff;">bool</span><span style="background: #ffffff; color: #000000;"> CheckInternetConnectivity()</span><br /><span style="background: #ffffff; color: #000000;">{ </span><br /><span style="background: #ffffff; color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var</span><span style="background: #ffffff; color: #000000;"> internetProfile = </span><span style="background: #ffffff; color: #2b91af;">NetworkInformation</span><span style="background: #ffffff; color: #000000;">.GetInternetConnectionProfile();</span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if</span><span style="background: #ffffff; color: #000000;">(internetProfile == </span><span style="background: #ffffff; color: #0000ff;">null</span><span style="background: #ffffff; color: #000000;">)<span style="background: #ffffff; color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return </span><span style="background: #ffffff; color: #0000ff;">false</span><span style="background: #ffffff; color: #000000;">;</span><br /><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return</span><span style="background: #ffffff; color: #000000;"> (internetProfile.GetNetworkConnectivityLevel() == </span><span style="background: #ffffff; color: #2b91af;">NetworkConnectivityLevel</span><span style="background: #ffffff; color: #000000;">.InternetAccess);</span><br />}</div>
</div>
<p>&nbsp;The following are helper methods to save and read the setting from local/roaming storage.</p>
<p>I write to both storage, you might opt for using only one of them, and when reading back data, I read first from the local storage, and if not found I attempt to read from the roaming one.</p>
<div style="border: 1px solid #000080; color: #000000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt;">
<div style="padding: 2px 5px; overflow: auto; max-height: 200px; background-color: #ffffff;">
<p><span style="background: #ffffff; color: #0000ff;">private </span><span style="background: #ffffff; color: #0000ff;">bool</span><span style="background: #ffffff; color: #000000;"> ReadAppRatingSetting()</span><br /><span style="background: #ffffff; color: #000000;">{</span><br /><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if</span><span style="background: #ffffff; color: #000000;"> (_localData.Values[</span><span style="background: #ffffff; color: #a31515;">"AppRatingDone"</span><span style="background: #ffffff; color: #000000;">] != </span><span style="background: #ffffff; color: #0000ff;">null</span><span style="background: #ffffff; color: #000000;">)<span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;"><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>return</span><span style="background: #ffffff; color: #000000;"> (</span><span style="background: #ffffff; color: #0000ff;">bool</span><span style="background: #ffffff; color: #000000;">)_localData.Values[</span><span style="background: #ffffff; color: #a31515;">"AppRatingDone"</span><span style="background: #ffffff; color: #000000;">];</span><br /><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>if</span><span style="background: #ffffff; color: #000000;"> (_roamingData.Values[</span><span style="background: #ffffff; color: #a31515;">"AppRatingDone"</span><span style="background: #ffffff; color: #000000;">] != </span><span style="background: #ffffff; color: #0000ff;">null</span><span style="background: #ffffff; color: #000000;">)</span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;"><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>return</span><span style="background: #ffffff; color: #000000;"> (</span><span style="background: #ffffff; color: #0000ff;">bool</span><span style="background: #ffffff; color: #000000;">)_roamingData.Values[</span><span style="background: #ffffff; color: #a31515;">"AppRatingDone"</span><span style="background: #ffffff; color: #000000;">];</span><br /><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>return </span><span style="background: #ffffff; color: #0000ff;">false</span><span style="background: #ffffff; color: #000000;">;</span><br /><span style="background: #ffffff; color: #000000;">}</span><br /><br /><span style="background: #ffffff; color: #0000ff;">private </span><span style="background: #ffffff; color: #0000ff;">void</span><span style="background: #ffffff; color: #000000;"> SaveAppRatingSetting()</span><br /><span style="background: #ffffff; color: #000000;">{</span><br /><span style="background: #ffffff; color: #008000;"><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>// for this setting, it's either saved or not, so we save true as the default value</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>_localData.Values[</span><span style="background: #ffffff; color: #a31515;">"AppRatingDone"</span><span style="background: #ffffff; color: #000000;">] = </span><span style="background: #ffffff; color: #0000ff;">true</span><span style="background: #ffffff; color: #000000;">;</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #0000ff;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>_roamingData.Values[</span><span style="background: #ffffff; color: #a31515;">"AppRatingDone"</span><span style="background: #ffffff; color: #000000;">] = </span><span style="background: #ffffff; color: #0000ff;">true</span><span style="background: #ffffff; color: #000000;">;</span></p>
<p><span style="background: #ffffff; color: #000000;">}</span></p>
</div>
</div>
<p>&nbsp;And here is the main method which displays the popup dialog which asks the user for feedback, and act accordingly.</p>
<div style="border: 1px solid #000080; color: #000000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt;">
<div style="padding: 2px 5px; overflow: auto; max-height: 500px; background-color: #ffffff;">
<p><span style="background: #ffffff; color: #0000ff;">private </span><span style="background: #ffffff; color: #0000ff;">async </span><span style="background: #ffffff; color: #2b91af;">Task</span><span style="background: #ffffff; color: #000000;"> AskForAppRating()</span><br /><span style="background: #ffffff; color: #000000;">{</span><br /><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="background: #ffffff; color: #0000ff;">if</span><span style="background: #ffffff; color: #000000;"> (!</span><span style="background: #ffffff; color: #000000;">CheckInternetConnectivity())</span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return</span><span style="background: #ffffff; color: #000000;">;</span><br /><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>if</span><span style="background: #ffffff; color: #000000;"> (ReadAppRatingSetting())</span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return</span><span style="background: #ffffff; color: #000000;">;</span><br /><br /><span style="background: #ffffff; color: #2b91af;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>MessageDialog</span><span style="background: #ffffff; color: #000000;"> msg;</span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>bool</span><span style="background: #ffffff; color: #000000;"> retry = </span><span style="background: #ffffff; color: #0000ff;">false</span><span style="background: #ffffff; color: #000000;">;</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>msg = </span><span style="background: #ffffff; color: #0000ff;">new </span><span style="background: #ffffff; color: #2b91af;">MessageDialog</span><span style="background: #ffffff; color: #000000;">(</span><span style="background: #ffffff; color: #a31515;">"Kindly, help us provide a better service, would you like to review &amp; rate \"THIS APP\"?"</span><span style="background: #ffffff; color: #000000;">);</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>msg.Commands.Add(</span><span style="background: #ffffff; color: #0000ff;">new </span><span style="background: #ffffff; color: #2b91af;">UICommand</span><span style="background: #ffffff; color: #000000;">(</span><span style="background: #ffffff; color: #a31515;">"Rate"</span><span style="background: #ffffff; color: #000000;">, </span><span style="background: #ffffff; color: #0000ff;">new </span><span style="background: #ffffff; color: #2b91af;">UICommandInvokedHandler</span><span style="background: #ffffff; color: #000000;">(</span><span style="background: #ffffff; color: #0000ff;">this</span><span style="background: #ffffff; color: #000000;">.OpenStoreRating)));</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>msg.Commands.Add(</span><span style="background: #ffffff; color: #0000ff;">new </span><span style="background: #ffffff; color: #2b91af;">UICommand</span><span style="background: #ffffff; color: #000000;">(</span><span style="background: #ffffff; color: #a31515;">"Not now"</span><span style="background: #ffffff; color: #000000;">, (uiCommand) =&gt; { }));</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>msg.Commands.Add(</span><span style="background: #ffffff; color: #0000ff;">new </span><span style="background: #ffffff; color: #2b91af;">UICommand</span><span style="background: #ffffff; color: #000000;">(</span><span style="background: #ffffff; color: #a31515;">"No, thanks"</span><span style="background: #ffffff; color: #000000;">, </span><span style="background: #ffffff; color: #0000ff;">new </span><span style="background: #ffffff; color: #2b91af;">UICommandInvokedHandler</span><span style="background: #ffffff; color: #000000;">(</span><span style="background: #ffffff; color: #0000ff;">this</span><span style="background: #ffffff; color: #000000;">.IgnoreRating)));</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>msg.DefaultCommandIndex = 0;</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>msg.CancelCommandIndex = 1;</span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>await</span><span style="background: #ffffff; color: #000000;"> msg.ShowAsync();</span><br /><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>while</span><span style="background: #ffffff; color: #000000;"> (retry)</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>try</span><span style="background: #ffffff; color: #000000;">{ </span><span style="background: #ffffff; color: #0000ff;">await</span><span style="background: #ffffff; color: #000000;"> msg.ShowAsync();</span><span style="background: #ffffff; color: #000000;">}</span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>catch</span><span style="background: #ffffff; color: #000000;"> (</span><span style="background: #ffffff; color: #2b91af;">Exception</span><span style="background: #ffffff; color: #000000;"> ex)</span><span style="background: #ffffff; color: #000000;">{</span><span style="background: #ffffff; color: #000000;">}</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span><br /><span style="background: #ffffff; color: #000000;">}</span><br /><br /><span style="background: #ffffff; color: #0000ff;">private </span><span style="background: #ffffff; color: #0000ff;">void</span><span style="background: #ffffff; color: #000000;"> IgnoreRating(</span><span style="background: #ffffff; color: #2b91af;">IUICommand</span><span style="background: #ffffff; color: #000000;"> command)</span><br /><span style="background: #ffffff; color: #000000;">{</span><br /><span style="background: #ffffff; color: #000000;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>SaveAppRatingSetting();</span><br /><span style="background: #ffffff; color: #000000;">}</span><br /><br /><span style="background: #ffffff; color: #008000;">// Launches the store app, using the application storeID</span><br /><span style="background: #ffffff; color: #0000ff;">private async </span><span style="background: #ffffff; color: #0000ff;">void</span><span style="background: #ffffff; color: #000000;"> OpenStoreRating(</span><span style="background: #ffffff; color: #2b91af;">IUICommand</span><span style="background: #ffffff; color: #000000;"> command)</span><br /><span style="background: #ffffff; color: #000000;">{</span><br /><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>await</span><span style="background: #ffffff; color: #000000;"> Windows.System.</span><span style="background: #ffffff; color: #2b91af;">Launcher</span><span style="background: #ffffff; color: #000000;">.LaunchUriAsync(</span><span style="background: #ffffff; color: #0000ff;">new</span><span style="background: #ffffff; color: #2b91af;">Uri</span><span style="background: #ffffff; color: #000000;">(</span><span style="background: #ffffff; color: #a31515;">"ms-windows-store:REVIEW?PFN=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"));</span></p>
<p><span style="background: #ffffff; color: #0000ff;"><span style="background: #ffffff; color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>SaveAppRatingSetting();</p>
<p>}</p>
</div>
</div>
<p>&nbsp;Finally you will need to call AskForAppRating() at the end of the LoadState() method, or any other event fired after page is loaded.</p>]]></content:encoded>
    </item>
  </channel>
</rss>