<?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>Silverlight and Windows Phone SDK</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/silverlight_sdk/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:26:04 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Windows Phone SDK 7.1.1 Update CTP</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/windows-phone-sdk-7-1-1-update-ctp</link>
      <pubDate>Wed, 29 Feb 2012 09:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Cheryl Simmons]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2012/02/29/windows-phone-sdk-7-1-1-update-ctp/</guid>
      <description><![CDATA[We recently released an update to the Windows Phone SDK that provides extra tools and features for...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">We recently released an update to the <a href="https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=28962">Windows Phone SDK</a> that provides extra tools and features for developing for 256-MB devices. Most importantly, this tools update contains a new 256-MB emulator to test your applications. Keep in mind&nbsp; however, that this release does not include the necessary license to publish your apps to the Marketplace, so you should use it to test your apps for now and plan on publishing them after the final release of this update. You can expect the final release to be happening soon.</span></p>
<p><span style="font-size: small;">We've also updated the docs to help you develop for 256-MB devices. You will find a new icon&nbsp;&nbsp; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/84/20/2642.Icon_MultiDevice.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20/2642.Icon_5F00_MultiDevice.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/84/20/2642.Icon_MultiDevice.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20/2642.Icon_5F00_MultiDevice.png" width="18" height="15" /></a>&nbsp; in relevant places to call&nbsp; to call out considerations for developing for 256-MB devices. If you want to dig into the docs,&nbsp;a</span><span style="font-size: small;"> good place to start is the overview topic, <a href="https://msdn.microsoft.com/en-us/library/hh855081(v=vs.92).aspx">Developing for 256-MB Devices</a>. If you are developing with the XNA Framework, you can check out&nbsp;</span><span style="font-size: small;">a new topic on <a href="https://msdn.microsoft.com/en-us/library/hh855082(v=vs.92).aspx">reducing memory use in XNA games</a>. </span></p>
<p><span style="font-size: small;">Making sure your applications run well on 256-MB devices will provide you with the greatest market reach for your apps, so check out the tools and docs today!</span></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Phone Design Guidelines on MSDN</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/windows-phone-design-guidelines-on-msdn</link>
      <pubDate>Wed, 01 Feb 2012 22:18:07 GMT</pubDate>
      <dc:creator><![CDATA[Cheryl Simmons]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2012/02/01/windows-phone-design-guidelines-on-msdn/</guid>
      <description><![CDATA[It was recently brought to my attention that we have done a poor job of evangelizing the Windows...]]></description>
      <content:encoded><![CDATA[<p><font size="2">It was recently brought to my attention that we have done a poor job of evangelizing the <a href="https://msdn.microsoft.com/en-us/library/hh202915(v=vs.92).aspx">Windows Phone Design Guidelines on MSDN</a>. These guidelines were previously available in PDF format, but a few months ago a couple of folks worked really hard to bring these to MSDN. Given the success of one of my previous posts, <a href="https://blogs.msdn.com/b/silverlight_sdk/archive/2011/01/07/windows-phone-7-design-guidelines-cheat-sheet.aspx">the design cheat sheet</a>, I would guess that developers are looking for these design guidelines presented in an easy-to-consume format.</font></p>  <p><font size="2">Along the lines of easy to consume are the <a href="https://msdn.microsoft.com/en-us/library/hh202879(v=vs.92).aspx">control design guideline topics</a>. There are design guideline topics for most controls that ship with the Windows Phone SDK. These topics typically contain an image of the control and describe the standard appearance of a control and its standard use. The best part of these topics, in my opinion, is the Design Guidelines section that lists the important points you need to remember when using the control in your UI. The following images show parts of the topic for the Button control.</font></p>  <p><font size="2"></font></p>  <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/84/20/metablogapi/2110.image_2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/2110.image_5F00_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/84/20/metablogapi/3108.image_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/3108.image_5F00_thumb.png" width="187" height="244" /></a>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/84/20/metablogapi/2626.image_4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/2626.image_5F00_4.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/84/20/metablogapi/6232.image_thumb_1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/6232.image_5F00_thumb_5F00_1.png" width="244" height="175" /></a></p>      <p><font size="2">So please, check out these topics and let us know what you think. Post a comment to this post or just use the feedback mechanism on the MSDN page.</font></p>  <p><font size="2">--Cheryl</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Updates to the Windows Phone docs</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/updates-to-the-windows-phone-docs</link>
      <pubDate>Tue, 20 Dec 2011 10:10:47 GMT</pubDate>
      <dc:creator><![CDATA[Cheryl Simmons]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2011/12/20/updates-to-the-windows-phone-docs/</guid>
      <description><![CDATA[We recently made a refresh of the Windows Phone documentation and samples. We've updated several...]]></description>
      <content:encoded><![CDATA[<p>We recently made a refresh of the Windows Phone documentation and samples. We've updated several samples:</p>
<ul>
<li>Background Agent</li>
<li>Background Transfer Service</li>
<li>Quick Card</li>
<li>Search Extensibility</li>
</ul>
<p>We also added the following new sample that shows how to use types in the <a href="https://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation(v=VS.92).aspx">NetworkInformation</a> namespace to get the network status of the device, mobile network and other information.</p>
<ul>
<li>Network and Device Information&nbsp;</li>
</ul>
<p>To get the latest samples go to the <a href="https://msdn.microsoft.com/en-us/library/ff431744(v=VS.92).aspx">Code Samples</a> page on MSDN.&nbsp;</p>
<p>In addition, we made fixes to several&nbsp;docs, some based on your feedback on <a href="https://wpdev.uservoice.com/forums/110707-docs">UserVoice</a>. For example, we added links to the camera sample from the camera docs. Please keep your feedback coming and we'll keep updating and making changes!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Muted audio even when the playback rate is set to a supported audio playback rate</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/muted-audio-even-when-the-playback-rate-is-set-to-a-supported-audio-playback-rate</link>
      <pubDate>Mon, 19 Dec 2011 10:28:00 GMT</pubDate>
      <dc:creator><![CDATA[Nitya Ravi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2011/12/19/muted-audio-even-when-the-playback-rate-is-set-to-a-supported-audio-playback-rate/</guid>
      <description><![CDATA[Silverlight 5 supports multiple playback rates. When the playback rate is set to&nbsp;a rate that...]]></description>
      <content:encoded><![CDATA[<p>Silverlight 5 supports multiple playback rates. When the playback rate is set to&nbsp;a rate that does <b>not</b> support audio playback, audio will be muted. If playback is reset back to 1 or to any value that supports audio playback after multiple rates that don&rsquo;t support audio/pitch correction playback, the audio could still be muted.</p>
<p>To work around this issue, you can reset the volume when the playback rate is changed. The following code demonstrates one way to reset the volume.</p>
<p>&nbsp;</p>
<p>void ME_RateChanged(object sender, RateChangedRoutedEventArgs e)</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp; // For playback rates that support audio playback, Enforce audio playback by resetting the MediaElement Volume property</p>
<p>&nbsp;&nbsp;&nbsp; //to unmute audio after multiple playbackRate changes.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; if (e.NewRate &lt;= 2&nbsp; &amp;&amp; e.NewRate &gt;= 0.5)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ME.Volume = ME.Volume;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>}</p>
<p>-Nitya.</p>]]></content:encoded>
    </item>
    <item>
      <title>Don't forget about the databinding features of Silverlight 4 that you get with Mango!</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/dont-forget-about-the-databinding-features-of-silverlight-4-that-you-get-with-mango</link>
      <pubDate>Fri, 16 Dec 2011 15:55:00 GMT</pubDate>
      <dc:creator><![CDATA[Cheryl Simmons]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2011/12/16/dont-forget-about-the-databinding-features-of-silverlight-4-that-you-get-with-mango/</guid>
      <description><![CDATA[If you are a Windows Phone developer, there are some properties offered on the Binding object in...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">If you are a Windows Phone developer, there are some properties offered on the <a href="https://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase(v=VS.95).aspx">Binding</a> object in SIlverlight 4, which is supported by Mango.&nbsp;Thse properties were not offered in Silverlight 3/Windows Phone OS 7.0.&nbsp;The SL4 binding&nbsp;properties&nbsp;make setting up control bindings much easier and help you avoid using a <a href="https://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx">value converter</a> in many cases.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">You can set a <a href="https://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.stringformat(v=VS.95).aspx">StringFormat</a> value on the binding to format your string in many common formats such as currency, date, time, etc&nbsp;. For example, if you want the string to be formatted like currency, your binding would look like this:</span></p>
<p><span style="font-size: small;"><span style="color: #0000ff;"><span style="font-family: courier new,courier;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text<span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">="{</span></span></span><span face="Consolas" color="#a31515" size="2"><span face="Consolas" color="#a31515" size="2"><span face="Consolas" color="#a31515" size="2">Binding</span></span></span><span face="Consolas" color="#ff0000" size="2"><span face="Consolas" color="#ff0000" size="2"><span face="Consolas" color="#ff0000" size="2"> StringFormat</span></span></span><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">=C</span></span></span><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">}</span></span></span></span><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">"</span></span></span></span><span style="font-family: courier new,courier;"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"></span></span></span></span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: small;" face="Consolas" color="#0000ff" size="2"><span style="color: #0000ff; font-family: Consolas;" face="Consolas" color="#0000ff" size="2"><span style="color: #0000ff; font-family: Consolas;" face="Consolas" color="#0000ff" size="2"><span style="color: #000000; font-family: arial,helvetica,sans-serif;" face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">The docs for <a href="https://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.stringformat(v=VS.95).aspx">StringFormat</a> could use some work (don't worry--I've filed a bug and they should get fixed for the next update), but meanwhile look </span></span></span><span style="color: #000000; font-family: arial,helvetica,sans-serif;" face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">at the following topics for more information about what your format strings should look like:</span></span></span></span></span></span></p>
<p><span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;" face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdn.microsoft.com/en-us/library/dwhawy9k(v=VS.95).aspx">Standard Format Strings</a></span></span></span></p>
<p><span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;" face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://msdn.microsoft.com/en-us/library/az4se3k1(v=VS.95).aspx">Date Format Strings</a></span></span></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">You can also set the <a href="https://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.fallbackvalue(v=VS.95).aspx">FallbackValue</a> property that is used when the binding can't return a value.&nbsp;In other words, this value will display in the UI when the binding doesn't resolve.</span></p>
<p><span style="color: #0000ff; font-family: courier new,courier; font-size: small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text<span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">="{<span face="Consolas" color="#a31515" size="2"><span face="Consolas" color="#a31515" size="2"><span face="Consolas" color="#a31515" size="2">Binding Name,&nbsp;</span></span></span></span></span></span><span face="Consolas" color="#ff0000" size="2"><span face="Consolas" color="#ff0000" size="2"><span face="Consolas" color="#ff0000" size="2">FallbackValue</span></span></span><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">=No Value</span></span></span><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">}"</span></span></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">And finally set the <a href="https://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.targetnullvalue(v=VS.95).aspx">TargetNullValue</a>&nbsp;to display a value when the underlying source value is null or&nbsp;nothing.</span></span></span></span></p>
<p><span style="color: #0000ff; font-size: small;"><span style="font-family: courier new,courier;"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span><span style="font-family: courier new,courier;">Text<span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">="{</span></span></span><span face="Consolas" color="#a31515" size="2"><span face="Consolas" color="#a31515" size="2"><span face="Consolas" color="#a31515" size="2">Binding Name</span></span></span><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">,</span></span></span><span face="Consolas" color="#ff0000" size="2"><span face="Consolas" color="#ff0000" size="2"><span face="Consolas" color="#ff0000" size="2"> </span></span></span><span face="Consolas" color="#ff0000" size="2"><span face="Consolas" color="#ff0000" size="2"><span face="Consolas" color="#ff0000" size="2">TargetNullValue</span></span></span><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">=</span></span></span><span face="Consolas" size="2"><span face="Consolas" size="2">n/a}</span></span><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">"</span></span></span></span></span></p>
<p><span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">All of these properties will show in Intellisense and speed development for you.</span></span></span></span></p>
<p><span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">Enjoy!</span></span></span></span></p>
<p><span style="color: #000000; font-family: arial,helvetica,sans-serif; font-size: small;"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2"><span face="Consolas" color="#0000ff" size="2">--Cheryl</span></span></span></span></p>
<p></p>
<p></p>
<p></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Silverlight 5 has released! The docs are up and a .chm is available</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/silverlight-5-has-released-the-docs-are-up-and-a-chm-is-available</link>
      <pubDate>Fri, 09 Dec 2011 12:51:00 GMT</pubDate>
      <dc:creator><![CDATA[Cheryl Simmons]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2011/12/09/silverlight-5-has-released-the-docs-are-up-and-a-chm-is-available/</guid>
      <description><![CDATA[Silverlight 5 has released! Here's the link to&nbsp;download the Silverlight 5 tools.
Silverlight 5...]]></description>
      <content:encoded><![CDATA[<p>Silverlight 5 has released! Here's the link to&nbsp;download the <a title="https://go.microsoft.com/fwlink/?LinkId=229318" href="https://go.microsoft.com/fwlink/?LinkId=229318">Silverlight 5 tools</a>.</p>
<p>Silverlight 5 offers many new features including:</p>
<ul>
<li><a title="https://msdn.microsoft.com/en-us/library/system.windows.controls.pivot.pivotviewer(VS.95).aspx" href="https://msdn.microsoft.com/en-us/library/system.windows.controls.pivot.pivotviewer(VS.95).aspx">PivotViewer</a> control</li>
<li><a href="https://msdn.microsoft.com/en-us/library/ee721083(VS.95).aspx">Trusted applications</a> in-browser</li>
<li><a title="https://msdn.microsoft.com/en-us/library/gg197424(XNAGameStudio.35).aspx" href="https://msdn.microsoft.com/en-us/library/gg197424(XNAGameStudio.35).aspx">3D graphics</a></li>
<li><a title="https://msdn.microsoft.com/en-us/library/ee671023(VS.95).aspx" href="https://msdn.microsoft.com/en-us/library/ee671023(VS.95).aspx">Vector printing</a></li>
<li>Improved text rendering including the <a title="https://msdn.microsoft.com/en-us/library/system.windows.controls.richtextblock(VS.95).aspx" href="https://msdn.microsoft.com/en-us/library/system.windows.controls.richtextblock(VS.95).aspx">RichTextBlock</a> control.</li>
<li><a title="https://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx" href="https://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx">Hardware decode of H.264</a> media</li>
</ul>
<p>For a detailed list of the new features see the Silverlight content on MSDN, specifically, the <a title="https://msdn.microsoft.com/en-us/library/gg986857(VS.95).aspx" href="https://msdn.microsoft.com/en-us/library/gg986857(VS.95).aspx">What's New for Silverlight 5</a> topic.</p>
<p>If you prefer your docs offline, here's the link to download the <a href="https://go.microsoft.com/fwlink/?LinkId=214685">.chm containing Silverlight 5 docs</a>.</p>
<p>Enjoy!</p>
<p>Cheryl</p>]]></content:encoded>
    </item>
    <item>
      <title>Tip for Using HyperlinkButton or Hyperlink in Silverlight for Windows Phone</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/tip-for-using-hyperlinkbutton-or-hyperlink-in-silverlight-for-windows-phone</link>
      <pubDate>Tue, 25 Oct 2011 16:14:00 GMT</pubDate>
      <dc:creator><![CDATA[Cheryl Simmons]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2011/10/25/tip-for-using-hyperlinkbutton-or-hyperlink-in-silverlight-for-windows-phone/</guid>
      <description><![CDATA[If you’ve tried unsuccessfully to use the HyperlinkButton control or the Hyperlink type in your...]]></description>
      <content:encoded><![CDATA[<p><font size="2">If you’ve tried unsuccessfully to use the <a href="https://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton(VS.96).aspx">HyperlinkButton</a> control or the <a href="https://msdn.microsoft.com/en-us/library/system.windows.documents.hyperlink(VS.95).aspx">Hyperlink</a> type in your Silverlight for Windows Phone applications, I have a tip for you.</font></p>  <p><font size="2">In Silverlight for Windows Phone you must always set the <a href="https://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.targetname(VS.96).aspx">TargetName</a> property to a value for the control to successfully navigate to the URL specified by <a href="https://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.navigateuri(VS.96).aspx">NavigateUri</a> when the hyperlink control is clicked. It doesn’t really matter what you set <a href="https://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.targetname(VS.96).aspx">TargetName</a> to, it just must be set. If you set <a href="https://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.targetname(VS.96).aspx">TargetName</a> and click the hyperlink control, the <a href="https://msdn.microsoft.com/en-us/library/microsoft.phone.controls.webbrowser(v=VS.92).aspx">web browser</a> will display with the correct page.</font></p>  <p><font size="2"></font></p>  <p><font size="2">Here’s an example:</font></p>  <p><font size="2" face="Courier New">&lt;HyperlinkButton Content=&quot;HyperlinkButton&quot; Height=&quot;30&quot; Name=&quot;hyperlinkButton1&quot; Width=&quot;200&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; NavigateUri=&quot;</font><a href="https://www.microsoft.com&quot;"><font size="2" face="Courier New">https://www.microsoft.com&quot;</font></a><font size="2" face="Courier New"> TargetName=&quot;_anything&quot; /&gt;     <br /></font></p>  <p><font size="2">This is different than the behavior for Silverlight for the desktop. On the desktop, you don’t need to explicitly set <a href="https://msdn.microsoft.com/en-us/library/system.windows.controls.hyperlinkbutton.targetname(VS.96).aspx">TargetName</a>. If you do set it, the behavior is similar to the standard HTML TARGET attribute.</font></p>  <p><font size="2">HTH</font></p>  <p><font size="2">--Cheryl</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Phone Mango release and we want your feedback!</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/windows-phone-mango-release-and-we-want-your-feedback</link>
      <pubDate>Wed, 28 Sep 2011 10:31:00 GMT</pubDate>
      <dc:creator><![CDATA[Cheryl Simmons]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2011/09/28/windows-phone-mango-release-and-we-want-your-feedback/</guid>
      <description><![CDATA[The Windows Phone Mango updates are going out to handsets, and the RTM version of the Mango SDK is...]]></description>
      <content:encoded><![CDATA[<p>The Windows Phone Mango updates are going out to handsets, and the RTM version of the Mango SDK is now available. In addition, the Marketplace is now available on the web. Check it out <a href="https://www.windowsphone.com/en-US/marketplace?wa=wsignin1.0">here</a>.</p>
<p>You can get the <a href="https://www.microsoft.com/download/en/details.aspx?id=27570">Windows Phone 7.1 SDK from the download center</a>. In addition, the docs and samples&nbsp;have been updated and finalized for this release as well. You can check out all the <a href="https://msdn.microsoft.com/en-us/library/ff402535(VS.92).aspx">docs here</a>. If you are just getting started building apps for Mango, you might what to check out the&nbsp;<a href="https://msdn.microsoft.com/en-us/library/ff637516(VS.92).aspx">What's New in the Windows Phone SDK</a>.</p>
<p>As we look forward to future releases, we would really love your feedback about the documentation and samples. Visit the <a href="https://wpdev.uservoice.com/pages/110707-docs">Windows Phone Documentation UserVoice</a> site to give us your feedback and vote on issues.</p>
<p>Thanks and enjoy!</p>
<p>Cheryl</p>]]></content:encoded>
    </item>
    <item>
      <title>pInvoke in Silverlight5 and .NET Framework</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/pinvoke-in-silverlight5-and-net-framework</link>
      <pubDate>Tue, 27 Sep 2011 11:06:24 GMT</pubDate>
      <dc:creator><![CDATA[Alexandra Rusina]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2011/09/27/pinvoke-in-silverlight5-and-net-framework/</guid>
      <description><![CDATA[One of the new features in Silverlight 5 RC is the ability to call native code including Win32 APIs...]]></description>
      <content:encoded><![CDATA[<p>One of the new features in Silverlight 5 RC is the ability to call native code including Win32 APIs through platform invocation, or pInvoke.</p>  <p>The technology itself is pretty well-known and it’s been in .NET since version 1.0. Here is one of the <a href="https://msdn.microsoft.com/en-us/library/aa288468.aspx">tutorials for .NET</a> that explains what pInvoke is about. So instead of explaining what pInvoke is, let me concentrate on how this feature works in Silverlight 5 and what differences with .NET you might expect.</p>  <p>First of all, calling native APIs is available only in full-trust applications. This is a security restriction; there is simply too much power in Windows APIs for a partial-trust Web application to have. The good news is that Silverlight 5 allows your application to be full trust and consequently use pInvoke in both in and out of the browser. One more restriction is that pInvoke is available only on Windows, there is no Mac support.</p>  <p>To get the things going, let me first re-introduce an example that <a href="https://blogs.msdn.com/b/nickkramer/archive/2011/04/22/mix-2011-slides-quot-advanced-features-in-silverlight-5-med12-quot.aspx">Nick Kramer first presented at MIX</a>. It shows how you can detect a removable drive (think about USB sticks or card readers). You click a button, and the program tells you whether you have a removable drive and if yes, what letter it’s assigned.</p>  <pre class="code"><font size="2"><span style="color: blue">using </span>System;
<span style="color: blue">using </span>System.Windows;
<span style="color: blue">using </span>System.Windows.Controls;
<span style="color: blue">using </span>System.Runtime.InteropServices;

<span style="color: blue">namespace </span>SamplePInvoke
{
    <span style="color: blue">public partial class </span><span style="color: #2b91af">MainPage </span>: </font><font size="2"><span style="color: #2b91af">UserControl
    </span>{
        <span style="color: blue">public </span>MainPage()
        {
            InitializeComponent();
        }

        </font><font size="2"><span style="color: green">// Import native method.
        </span>[<span style="color: #2b91af">DllImport</span>(<span style="color: #a31515">&quot;kernel32.dll&quot;</span>)]
        <span style="color: blue">static extern int </span>GetDriveType(<span style="color: blue">string </span>lpRootPathName);

        <span style="color: blue">private void </span>detectDrive_Click(<span style="color: blue">object </span>sender, <br />                                       </font><font size="2"><span style="color: #2b91af">RoutedEventArgs </span>e)
        {
            <span style="color: #2b91af">String</span>[] drives = <span style="color: blue">new string</span>[] 
                { <span style="color: #a31515">@&quot;c:\&quot;</span>, <span style="color: #a31515">@&quot;d:\&quot;</span>, <span style="color: #a31515">@&quot;e:\&quot;</span>, <br />                  </font><font size="2"><span style="color: #a31515">@&quot;f:\&quot;</span>, <span style="color: #a31515">@&quot;g:\&quot;</span>, <span style="color: #a31515">@&quot;h:\&quot;</span>, <span style="color: #a31515">@&quot;i:\&quot; </span>};
            <span style="color: blue">bool </span>driveInserted = <span style="color: blue">false</span>;
            <span style="color: blue">string </span>driveLetter = <span style="color: #a31515">&quot;&quot;</span>;
            <span style="color: blue">foreach </span>(<span style="color: #2b91af">String </span>drive <span style="color: blue">in </span>drives)
            {
                </font><font size="2"><span style="color: green">// Calling the native method. 
                // “2” means that the drive is a removable drive.
                </span><span style="color: blue">if </span>(GetDriveType(drive) == 2)
                {
                    driveInserted = <span style="color: blue">true</span>;
                    driveLetter = drive;
                }
            }
            <span style="color: blue">if </span>(driveInserted)
                textBlock1.Text = <span style="color: #a31515">&quot;Removable drive is &quot; </span>+ driveLetter;
            </font><font size="2"><span style="color: blue">else
                </span>textBlock1.Text = <span style="color: #a31515">&quot;No removable drive&quot;</span>;
        }
    }
}</font></pre>

<p>As I mentioned already and as you can see from the example above, in most cases the feature works exactly the same as in .NET. This code is basically identical in both Silverlight and WPF. </p>

<p>However, there are also some differences as well, so keep on reading.</p>

<h1>Marshaling</h1>

<p>For marshaling, many applications use the methods from the <b>System.Runtime.InteropServices.Marshal</b> class. But you might notice that <a href="https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal%28v=VS.100%29.aspx">.NET</a> and <a href="https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal%28v=VS.95%29.aspx">Silverlight</a> versions of this class have different number of methods. As usual, Silverlight provides you with only a subset of the full .NET, which we believe represents the most used part. In fact, this is the same set of methods Silverlight itself uses for native interop and it is usually sufficient.</p>

<p>Many of the methods from the Marshal class in the full .NET Framework are just managed wrappers around native APIs. Often, if you can’t find a certain method from the Marshal class in Silverlight, you can use the native API directly.</p>

<p>For example, the method <a href="https://msdn.microsoft.com/en-us/library/5cyb68cy.aspx">Marshal.AllocHGlobal</a> exists in .NET and doesn’t exist in Silverlight. However, this method is just a wrapper around the Win32 <a href="https://go.microsoft.com/fwlink/?LinkId=148628">LocalAlloc</a> function from Kernel32.dll. So you need to call this native function directly instead of its managed wrapper and refactor you code accordingly.</p>

<pre class="code"><font size="2">[<span style="color: #2b91af">DllImport</span>(<span style="color: #a31515">&quot;kernel32.dll&quot;</span>, EntryPoint = <span style="color: #a31515">&quot;LocalAlloc&quot;</span>)]
<span style="color: blue">internal static extern </span><span style="color: #2b91af">IntPtr </span>LocalAlloc_NoSafeHandle(
    <span style="color: blue">int </span>uFlags, <span style="color: #2b91af">IntPtr </span>sizetdwBytes);</font></pre>

<p>Usually, you can find what native method is being wrapped in the documentation of the managed method itself.</p>

<h1>Reverse pInvoke Calls</h1>

<p>In the first example in this article, the only call I make is from managed code to native code. However, sometimes you need to do the opposite: call a managed method from within the native code. It usually happens when a native method uses a callback or accepts a pointer to a function as one of its parameters and you want to use your managed method for this callback.</p>

<p>In the full .NET such reverse calls and direct calls are treated the same. In Silverlight, however, you need to explicitly specify the “entry points” for reverse pInvoke calls by using the <a href="https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.allowreversepinvokecallsattribute.aspx">AllowReversePInvokeCalls attribute</a>. Basically, all you need to do is to apply this attribute to managed methods that need to be called from the native code.</p>

<p>Here is an example. Consider that you have the following C++ method:</p>

<pre class="code"><font size="2"><span style="color: blue">typedef int </span>(*NumberSource) (<span style="color: blue">void</span>); 

<span style="color: blue">int </span>MultiplyByTen(NumberSource numberSource)
{
      <span style="color: blue">int </span>returnValue = numberSource() * 10;
      <span style="color: blue">return </span>returnValue;
}</font></pre>

<p>This sample method takes a pointer to a function returning integer as a parameter and multiplies the function’s return value by 10.</p>

<p>In managed code, I need to declare this method as follows:</p>

<pre class="code"><font size="2">[<span style="color: #2b91af">DllImport</span>(<span style="color: #a31515">&quot;testCPlusPlus.dll&quot;</span>)]
<span style="color: blue">static extern int </span>MultiplyByTen(<span style="color: #2b91af">NumberSource </span>src);

<span style="color: blue">public delegate int </span><span style="color: #2b91af">NumberSource</span>();</font></pre>

<p>Note that instead of the function pointer I use a delegate. Again, this is identical to what you would do in the full .NET. Next, I create a managed method and pass it to the native method through a delegate binding.</p>

<pre class="code"><font size="2"><span style="color: blue">public int </span>ManagedSource()
{
    <span style="color: blue">return </span>42;
}

<span style="color: blue">public </span>MainPage()
{
    InitializeComponent();
    <span style="color: blue">int </span>res = MultiplyByTen(<span style="color: blue">new </span><span style="color: #2b91af">NumberSource</span>(ManagedSource));
}</font></pre>

<p>This code works fine in the full .NET, but in Silverlight the last line throws a security exception with the following message: <i></i></p>

<p><i>Delegate 'SilverlightApplication1.MainPage+NumberSource' must be bound to a method in a fully-trusted assembly and the method must have the AllowReversePinvokeCallsAttribute.</i></p>

<p>To fix this problem, all I need to do is apply the AllowReversePinvokeCalls attribute to the ManagedSource method.</p>

<pre class="code"><font size="2">[<span style="color: #2b91af">AllowReversePInvokeCalls</span>]
<span style="color: blue">public int </span>ManagedSource()
{
    <span style="color: blue">return </span>42;
}</font></pre>

<p>This feature is just an additional security measure, so you can have better control over what managed methods can and cannot be called by native APIs. </p>

<h1>Processing Window Messages</h1>

<p>Anybody familiar with Win32 API probably knows that Windows sends different messages to each registered window through the <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms633573%28v=vs.85%29.aspx">WindowProc</a> function. For example, it sends messages whenever a USB device is inserted or removed. </p>

<p>In WPF and even in Windows Form, you could take an existing window or subclass a Window class and override its WndProc method. However, in Silverlight the Window class doesn’t expose this method. One way to solve this problem is to define a hidden window by using native APIs. Here is another code example that detects the removal and insertion of a USB.</p>

<pre class="code"><font size="2"><span style="color: blue">public partial class </span><span style="color: #2b91af">MainPage </span>: </font><font size="2"><span style="color: #2b91af">UserControl
</span>{

</font><font size="2"><span style="color: green">// Importing a set of necessary native methods from Win32 API.
</span>[<span style="color: #2b91af">DllImport</span>(<span style="color: #a31515">&quot;User32&quot;</span>, EntryPoint = <span style="color: #a31515">&quot;CreateWindowEx&quot;</span>, <br />    CharSet = <span style="color: #2b91af">CharSet</span>.Auto,SetLastError = <span style="color: blue">true</span>)]
<span style="color: blue">static extern </span><span style="color: #2b91af">IntPtr </span>CreateWindowEx(<span style="color: blue">int </span>dwExStyle, <br />    <span style="color: blue">string </span>lpszClassName, <span style="color: blue">string </span>lpszWindowName, <span style="color: blue">int </span>style, <br />    <span style="color: blue">int </span>x, <span style="color: blue">int </span>y, <span style="color: blue">int </span>width, <span style="color: blue">int </span>height,
    <span style="color: #2b91af">IntPtr </span>hWndParent, <span style="color: #2b91af">IntPtr </span>hMenu, <span style="color: #2b91af">IntPtr </span>hInst,
    [<span style="color: #2b91af">MarshalAs</span>(<span style="color: #2b91af">UnmanagedType</span>.AsAny)] <span style="color: blue">object </span>pvParam);

[<span style="color: #2b91af">DllImport</span>(<span style="color: #a31515">&quot;user32.dll&quot;</span>)]
<span style="color: blue">static extern </span><span style="color: #2b91af">IntPtr </span>DefWindowProc(<span style="color: #2b91af">IntPtr </span>hWnd, <span style="color: blue">int </span>uMsg, 
    <span style="color: #2b91af">IntPtr </span>wParam, <span style="color: #2b91af">IntPtr </span>lParam);

[<span style="color: #2b91af">DllImport</span>(<span style="color: #a31515">&quot;user32&quot;</span>, CharSet = <span style="color: #2b91af">CharSet</span>.Auto, SetLastError = <span style="color: blue">true</span>)]
<span style="color: blue">public static extern short </span>RegisterClass(<span style="color: #2b91af">WNDCLASS </span>wc);

</font><font size="2"><span style="color: green">// Marshaling the Window structure.
</span>[<span style="color: #2b91af">StructLayout</span>(<span style="color: #2b91af">LayoutKind</span>.Sequential, CharSet = <span style="color: #2b91af">CharSet</span>.Auto)]
<span style="color: blue">public class </span></font><font size="2"><span style="color: #2b91af">WNDCLASS
</span>{
    <span style="color: blue">public int </span>style;
    <span style="color: blue">public </span><span style="color: #2b91af">WndProc </span>lpfnWndProc;
    <span style="color: blue">public int </span>cbClsExtra;
    <span style="color: blue">public int </span>cbWndExtra;
    <span style="color: blue">public </span><span style="color: #2b91af">IntPtr </span>hInstance;
    <span style="color: blue">public </span><span style="color: #2b91af">IntPtr </span>hIcon;
    <span style="color: blue">public </span><span style="color: #2b91af">IntPtr </span>hCursor;
    <span style="color: blue">public </span><span style="color: #2b91af">IntPtr </span>hbrBackground;
    <span style="color: blue">public string </span>lpszMenuName;
    <span style="color: blue">public string </span>lpszClassName;
}

</font><font size="2"><span style="color: green">//system detects USB insertion/removal
</span><span style="color: blue">const int </span>WM_DEVICECHANGE = 0x0219;
</font><font size="2"><span style="color: green">// system detects a new device
</span><span style="color: blue">const int </span>DBT_DEVICEARRIVAL = 0x8000;
</font><font size="2"><span style="color: green">// device removed
</span><span style="color: blue">const int </span>DBT_DEVICEREMOVECOMPLETE = 0x8004;

</font><font size="2"><span style="color: green">// Callbacks must have AllowReversePInvokeCalls attribute.
</span>[<span style="color: #2b91af">AllowReversePInvokeCalls</span>]
<span style="color: blue">private </span><span style="color: #2b91af">IntPtr </span>Callback(<br />    <span style="color: #2b91af">IntPtr </span>hWnd, <span style="color: blue">int </span>msg, <span style="color: #2b91af">IntPtr </span>wparam, <span style="color: #2b91af">IntPtr </span>lparam)
{
    <span style="color: blue">if </span>(msg == WM_DEVICECHANGE)
    {
        <span style="color: blue">if </span>(wparam.ToInt32() == DBT_DEVICEARRIVAL) 
            textBlock1.Text = <span style="color: #a31515">&quot;USB inserted&quot;</span>;
        <span style="color: blue">if </span>(wparam.ToInt32() == DBT_DEVICEREMOVECOMPLETE) 
            textBlock1.Text = <span style="color: #a31515">&quot;USB removed&quot;</span>;
    }
    <span style="color: blue">return </span>DefWindowProc(hWnd, msg, wparam, lparam);
}

<span style="color: blue">public delegate </span><span style="color: #2b91af">IntPtr WndProc</span>(
    <span style="color: #2b91af">IntPtr </span>hWnd, <span style="color: blue">int </span>msg, <span style="color: #2b91af">IntPtr </span>wParam, <span style="color: #2b91af">IntPtr </span>lParam);

</font><font size="2"><span style="color: green">// Preventing garbage collection of the delegate
</span><span style="color: blue">private static </span><span style="color: #2b91af">WndProc </span>dontGCthis;

<span style="color: blue">public </span>MainPage()
{
    InitializeComponent();

    <span style="color: #2b91af">WNDCLASS </span>wc = <span style="color: blue">new </span><span style="color: #2b91af">WNDCLASS</span>();

    </font><font size="2"><span style="color: green">// Preventing garbage collection of the delegate
    </span>dontGCthis = <span style="color: blue">new </span><span style="color: #2b91af">WndProc</span>(Callback);
    wc.lpfnWndProc = dontGCthis;

    </font><font size="2"><span style="color: green">// Note that you need to ensure unique names <br />    // for each registered class.
    // For example, if you open the same plugin 
    // in two different tabs of the browser,
    // you still should not end up with 
    // two registered classes with identical names.
    </span>wc.lpszClassName = <span style="color: #a31515">&quot;foobar&quot; </span>+ (<span style="color: blue">new </span><span style="color: #2b91af">Random</span>()).Next();

    RegisterClass(wc);

    <span style="color: #2b91af">IntPtr </span>createResult = CreateWindowEx(0, wc.lpszClassName, <br />        <span style="color: #a31515">&quot;Window title&quot;</span>, 0, 100, 100, 500, 500, <br />        <span style="color: #2b91af">IntPtr</span>.Zero, <span style="color: #2b91af">IntPtr</span>.Zero, <span style="color: #2b91af">IntPtr</span>.Zero, 0);
}
}</font></pre>

<p>This example prints to a text block when a USB device is removed or inserted. Note that if you use the same code in WPF, it will work just fine. However, it’s important to remember that porting your existing pInvoke code from WPF to Silverlight might require some extra work (as usual).</p>

<h1>More Examples</h1>

<p>There were several good articles about pInvoke already written after Silverlight RC. I just wanted to share the list, since there never can be too many code examples, especially when you are dealing with such advanced topics as interop between managed and advanced code.</p>

<ul>
  <li><a href="https://csharperimage.jeremylikness.com/2011/09/silverlight-5-rc-released-using-pinvoke.html">Silverlight 5 RC Released - Using PInvoke</a> by Jeremy Likness 

    <br />A very simple article that shows how to call MessageBeep. The article takes you through initial marshaling concepts and introduces some best practices for interop coding. </li>

  <li><a href="https://www.pitorque.de/MisterGoodcat/post/Silverlight-5-PInvoke-fun-System-Font-Dialog.aspx">Silverlight 5 PInvoke fun - System Font Dialog</a> by Peter Kuhn aka Mister Goodcat. 

    <br />Another good article for beginners, but with a more advanced example showing how to load system fonts. </li>

  <li><a href="https://10rem.net/blog/2011/09/20/enumerating-midi-interfaces-using-silverlight-5-pinvoke">Enumerating MIDI Interfaces using Silverlight 5 PInvoke</a> by Pete Brown. 

    <br />I liked this one, since working with devices is one of the primary scenarios for pInvoke in Silverlight 5. </li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Silverlight 5 RC support for application-restricted media</title>
      <link>https://docs.microsoft.com/archive/blogs/silverlight_sdk/silverlight-5-rc-support-for-application-restricted-media</link>
      <pubDate>Wed, 07 Sep 2011 17:20:00 GMT</pubDate>
      <dc:creator><![CDATA[Cheryl Simmons]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/silverlight_sdk/2011/09/07/silverlight-5-rc-support-for-application-restricted-media/</guid>
      <description><![CDATA[Application restricted media (ARM) is new feature in Silverlight 5 RC that enables content providers...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;" size="2">Application restricted media (ARM) is new feature in Silverlight 5 RC that enables content providers to ensure their content under digital rights management (DRM) is consumed only by Silverlight applications they authorize.</span></p>
<p><span style="font-size: small;" size="2">This enables experience protection of DRM&rsquo;d content, which is particularly useful for media that contains revenue-generating ad content.</span></p>
<p><span style="font-size: small;"><span size="2">To enable ARM for an application you must sign your content using an Authenticode x.509 certificate. You can use <a href="https://msdn.microsoft.com/en-us/library/8s9b9yaz.aspx">signtool.exe</a>, which you also use to create a </span><a href="https://msdn.microsoft.com/en-us/library/ee721083(VS.95).aspx#application_signing"><span size="2">Silverlight trusted application</span></a><span size="2">, although the Silverlight application consuming content does not have to be a trusted application.&nbsp; For example, you could a command like the following:</span></span></p>
<p><span style="font-family: Courier New; font-size: small;" size="2" face="Courier New">signtool sign /v /f certificateFile.pfx fileToSign</span></p>
<p></p>
<p><span style="font-size: small;" size="2">You can also use the signing mechanism in Visual Studio to sign your application. The following image shows the Signing tab in Visual Studio, which you access from Project Properties:</span></p>
<p><span style="font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/84/20/metablogapi/8585.image_2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/8585.image_5F00_2.png"><img style="background-image: none; margin: 5px 5px 5px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/84/20/metablogapi/7827.image_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-20-metablogapi/7827.image_5F00_thumb.png" width="421" height="272" /></a> </span><br /><span style="font-size: small;" size="2">To learn more about DRM content in general, see <a href="https://msdn.microsoft.com/en-us/library/cc838192(VS.95).aspx">Digital Rights Management</a>.</span></p>
<p><span style="font-size: small;" size="2">--Cheryl</span></p>
<p><span style="font-size: small;" size="2">&nbsp;</span></p>]]></content:encoded>
    </item>
  </channel>
</rss>