<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5056955565979493802</id><updated>2012-02-15T23:10:03.452-08:00</updated><category term='F#'/><category term='Functional Programming'/><category term='Visual Studio 2010'/><category term='INNNovation'/><title type='text'>46 Apples</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-4664300851971737380</id><published>2010-03-31T00:45:00.000-07:00</published><updated>2010-03-31T06:30:28.197-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Functional Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='F#'/><category scheme='http://www.blogger.com/atom/ns#' term='INNNovation'/><title type='text'>Introducing F#</title><content type='html'>&lt;h2&gt;Introduction&lt;/h2&gt;The purpose of this article is to introduce you to the F# language - what it is, it's origins, and how it fits into Visual Studio 2010 RC.  In the process, I hope to highlight the following:&lt;div&gt;&lt;ul&gt;&lt;li&gt;What exactly is F#?&lt;/li&gt;&lt;li&gt;What is functional programming?&lt;/li&gt;&lt;li&gt;What are the benefits of functional programming?&lt;/li&gt;&lt;li&gt;How to install F#&lt;/li&gt;&lt;li&gt;What is F# Interactive?&lt;/li&gt;&lt;li&gt;The F# Powerpack&lt;/li&gt;&lt;li&gt;and where you can download the required F# tools and libraries from&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;In the &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;Downloads&lt;/span&gt; section of this article you will find links to a presentation I gave on the F# language, as well as a Visual Studio 2010 solution containing sample F# projects and scripts you can run to further clarify what the language is and what it can do.&lt;/div&gt;&lt;h2&gt;What is F#?&lt;/h2&gt;F# is a multi-paradigm programming language, targeting the .NET Framework, that encompasses functional programming as well as imperative object-oriented programming disciplines. It is a variant of ML and is largely compatible with the OCaml implementation. F# was initially developed by Don Syme at Microsoft Research but is now being developed at Microsoft Developer Division and will be distributed as a fully supported language in the .NET framework and Visual Studio as part of Visual Studio 2010.&lt;div&gt;&lt;br /&gt;F# is a strongly typed language that uses type inference. As a result, data types need not be explicitly declared by the programmer; they will be deduced by the compiler during compilation. However, F# also allows explicit data type declaration. Being a .NET language, F# supports .NET types and objects. But itextends the type system and categorizes types as immutable types or mutable types. .NET objects classify as mutable types (which can be edited in-place), and are used to provide an object-oriented programming model. Immutable types (editing such a type creates a new instance without overwriting the older one) are primarily used for functional programming.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Before we can fully understand what F# is and how it fits into the bigger programming picture, we need to know a little more about functional programming.&lt;br /&gt;&lt;h2&gt;What is Functional Programming?&lt;/h2&gt;&lt;p&gt;Functional programming means that programs are executed by evaluating expressions. This contrasts with imperative programming where programs are composed of statements which change global state when executed. Functional programming, on the other hand, avoids using state and mutable data.&lt;br /&gt;&lt;br /&gt;Functional programming requires that functions are first-class, which means that they are treated like any other values and can be passed as arguments to other functions or be returned as a result of a function. Being first-class also means that it is possible to define and manipulate functions nested in code blocks. Special attention needs to be given to nested functions, called closures, that reference local variables from their scope. If such a function escapes their block after being returned from it, the local variables must be retained in memory, as they might be needed later when the function is called. Usually it is not possible to determine statically the moment of release, which means that an automatic memory management technique has to be used.&lt;/p&gt;&lt;p&gt;Functional programming is based on the simplest of models, namely that of finding the value of an expression. This we meet in our first years at school, when we learn to work out expressions like &lt;code&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;8+(3-2)&lt;/span&gt;&lt;/code&gt; by evaluating the two halves, &lt;code&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;8&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;(3-2)&lt;/span&gt;&lt;/code&gt;, and adding the results together. Functional programming consists of our defining for ourselves functions like &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;+&lt;/span&gt; which we can then use to form expressions.&lt;/p&gt;&lt;p&gt;We define these functions by means of equations, like &lt;/p&gt;&lt;pre&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;addD a b = 2*(a+b)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;which we use to calculate the value of an expression like &lt;code&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;addD 2 (addD 3 4)&lt;/span&gt;&lt;/code&gt;. We evaluate this using (1) to replace occurrences of addD with their values, so that we can write down a calculation of its value&lt;br /&gt;&lt;pre&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;addD 2 (addD 3 4)&lt;br /&gt;=&lt;br /&gt;2*(2 + (addD 3 4))&lt;br /&gt;= 2*(2 + 2*(3 + 4))&lt;br /&gt;= 32&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;As well as using (1) to calculate, we can read it as a logical description of how the function addD&lt;br /&gt;behaves on any values a and b; on the basis of this we can reason about how it behaves. For instance, for any values a and b,&lt;/p&gt;&lt;pre&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;addD a b = 2*(a+b) =&lt;br /&gt;2*(b+a) = addD b a&lt;/span&gt;&lt;/pre&gt;This equation holds for all possible input values, in contrast to the information we gain from testing a function at a selection of inputs.&lt;p&gt;On top of this simple model we can build a variety of facilities, which give the functional approach its distinctive flavour. These include higher-order functions, whose arguments and results are themselves functions; polymorphism, which allows a single definition to apply simultaneously to a collection of types; and infinite data structures which are used to model a variety of data objects.&lt;br /&gt;&lt;br /&gt;The Miranda language also has support for larger-scale programming, including user-defined algebraic types, such as lists, trees and so on; abstract data types and modules. These contribute to separating complex tasks into smaller sub-tasks, making the components of systems independent of each other, as well as supporting software re-use.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Benefits of functional programming&lt;/h2&gt;&lt;p&gt;Functional programming is known to provide better support for structured programming than imperative programming. To make a program structured it is necessary to develop abstractions and split it into components which interface each other with those abstractions. Functional languages aid this by making it easy to create clean and simple abstractions. It is easy, for instance, to abstract out a recurring piece of code by creating a higher-order function which will make the resulting code more declarative and comprehensible.&lt;/p&gt;&lt;p&gt;Functional programs are often shorter and easier to understand than their imperative&lt;br /&gt;counterparts. Since various studies have shown that the average programmer's productivity in terms of lines of code is more or less the same for any programming language, this translates also to higher productivity.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;F# Installation&lt;/h2&gt;&lt;/div&gt;F# is included as part of Visual Studio 2010. It comes with a Microsoft Visual Studio language service that integrates it with the IDE. With the language service installed, Visual Studio can be used to create F# projects and the Visual Studio debugger used to debug F# code. In addition, it comes with a Visual Studio-hosted interactive console that executes F# code as it is being written.&lt;br /&gt;&lt;p&gt;F# can also be downloaded as a seperate installation package for Visual Studio 2010 and 2010, or as a standalone compiler available in the F# CTP release. In addition to this, F# compiler binaries are also available for Mono, Mac, and Linux. &lt;/p&gt;&lt;p&gt;Furthermore, a collection of libraries and tools for use with the F# language is available in the form of the F# Powerpack from &lt;a href="http://fsharppowerpack.codeplex.com/"&gt;CodePlex&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;What is F# Interactive&lt;/h2&gt;F# Interactive is a command line tool you can use to execute fragments of F# code interactively, making it a convenient way to explore the language.&lt;p&gt;You can start F# Interactive in Visual Studio by selecting &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;Tools ➤ Add-in Manager&lt;/span&gt; and then selecting F# Interactive for Visual Studio in the Add-in Manager dialog box. A tool window will then appear, and you can send text to F# Interactive by selecting the text and pressing &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;Alt+Return&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;It is installed by default into &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;%PROGRAMFILES%\Microsoft F#\v4.0&lt;/span&gt; if Visual Studio 2010 is installed.&lt;/p&gt;&lt;h2&gt;F# Powerpack&lt;/h2&gt;The F# PowerPack is a collection of libraries and tools for use with the F# programming language provided by the F# team at Microsoft.&lt;p&gt;This is functionality which is not part of the core F# release, but enables some development scenarios with F#. The PowerPack include features such as a basic Matrix library and supporting math types, FsLex and FsYacc tools for lexing and parsing, support for using F# with LINQ-based libraries, and a tool for generating HTML documentation from F# libraries. This functionality, which has previously been available in the F# CTP releases, is now available on &lt;a href="http://fsharppowerpack.codeplex.com/"&gt;CodePlex&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The PowerPack consists of several assemblies and tools which provide functionality in wide range of areas related to F#:&lt;/p&gt;&lt;h4&gt;FsLex and FsYacc&lt;/h4&gt;PowerPack includes F# versions of these popular lexer and parser generation tools, along with MSBuild tasks to incorporate them in the build process.&lt;br /&gt;&lt;h4&gt;F# Documentation generator&lt;/h4&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;FsHtmlDoc.exe&lt;/span&gt;, included in PowerPack, can be used to generate HTML documentation from the XMLDoc comments in F# source files.&lt;br /&gt;&lt;h4&gt;F# LINQ and Quotations to Expression Tree Bridge&lt;/h4&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;FSharp.PowerPack.Linq.dll&lt;/span&gt; connects F# with features introduced in .NET 3.5. It provides converters from quotations to .NET expression trees, and introduces a query operator that allows F# programs to execute queries via LINQ mechanisms.&lt;br /&gt;&lt;h4&gt;F# CodeDOM Implementation&lt;/h4&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;FSharp.Compiler.CodeDom.dll&lt;/span&gt; contains implementations of &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;System.CodeDom.Compiler.CodeDomProvider&lt;/span&gt; for F#. This allows F# to be used with CodeDom consumers, and most importantly to author ASP.NET pages code-behind classes in F#. Not all ASP.NET features work with this CodeDom, and  you don't get strongly typed access to page elements, Some sample ASP.NET applications are in the  test suite in the source tree.&lt;br /&gt;&lt;h4&gt;F# Parallel LINQ Integration&lt;/h4&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;FSharp.PowerPack.Parallel.dll&lt;/span&gt; provides F#-style API for parallel operations on sequences that are part in .NET 4.0 as &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;System.Linq.ParallelEnumerable&lt;/span&gt; class. The API is akin to F# operations on sequences.&lt;br /&gt;&lt;h4&gt;F# Metadata Reader&lt;/h4&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;FSharp.PowerPack.Metadata.dll&lt;/span&gt; allows to introspect F#-authored assemblies and analyze F#-specific metadata.&lt;br /&gt;&lt;h4&gt;F# Compatibility Helpers&lt;/h4&gt;&lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;FSharp.PowerPack.Compatibility.dll&lt;/span&gt; provides various helper functions for compatibility with OCaml and previous releases of F#.&lt;br /&gt;&lt;h2&gt;Downloads&lt;/h2&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="http://www.sendspace.com/file/li9kyp"&gt;F# INNNovation Powerpoint Presentation&lt;/a&gt; (.pptx)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sendspace.com/file/4j3ei3"&gt;Sample code&lt;/a&gt; (demo projects) used in the INNNovation presentation&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ba52e650-4e77-4b0b-b987-9f9ecd3bab3b&amp;amp;displaylang=en"&gt;The Microsoft F# February 2010 Community Technology Preview&lt;/a&gt; &lt;ul&gt;  &lt;li&gt;Includes optional Visual Studio 2008 integration for F# development. If you don't have Visual Studio, install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=40646580-97FA-4698-B65F-620D4B4B1ED7&amp;amp;displaylang=en"&gt;Visual Studio 2008 Shell&lt;/a&gt; (free download) prior to installing F#&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8ff66036-37e2-4ae4-9651-3317c028c6ec&amp;amp;displaylang=en"&gt;Microsoft Visual Studio 2010 F# Runtime 2.0 RC&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=151924"&gt;F# for Mono/Mac/Linux&lt;/a&gt; (compiler binaries, ZIP)&lt;/li&gt;&lt;li&gt;&lt;a href="http://fsharppowerpack.codeplex.com/"&gt;F# Powerpack&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Also be sure to visit the &lt;a href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/"&gt;Microsoft F# Research&lt;/a&gt; site.&lt;br /&gt;&lt;h2&gt;Using the Code&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Extract the source archive to your local hard drive.&lt;/p&gt;&lt;p&gt;The enclosed solution was created using Visual Studio 2010 RC, and contains six F# projects, and two F# script files (with an &lt;span class="Apple-style-span"  style="color:#33FF33;"&gt;.fsx&lt;/span&gt; extension). To run a project, select a project of choice from the solution, right-click the project, select Set as StartUp Project, and hit F5!&lt;/p&gt;&lt;p&gt;To run the F# scripts, open the script file in Visual Studio 2010 RC, select all the code in the source file, and then either send the code to F# Interactive inside Visual Studio, or copy and paste the code into the F# Interactive command line tool.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-4664300851971737380?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/4664300851971737380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2010/03/introducing-f.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/4664300851971737380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/4664300851971737380'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2010/03/introducing-f.html' title='Introducing F#'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-8071492159627894765</id><published>2009-10-20T20:34:00.000-07:00</published><updated>2009-10-20T20:34:00.127-07:00</updated><title type='text'>Passing dates in XAML</title><content type='html'>&lt;div&gt;Recently I had the need for an encapsulated, reusable 'About Box' control that I could use throughout a number of Silverlight applications. I then wrote a user control that would serve this purpose. The AboutBox displays application releases that are grouped by the application version, and a list of changes/updates included in that version. An example of this can be seen below:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/_DHkJD0p9C7M/St3R7S2mMzI/AAAAAAAAABY/YjhswQfO4H4/s320/AboutBoxExample.png" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Although the use and implementation of the AboutBox user control is beyond the scope of this article, one of the features of the AboutBox was to enable the developer to specify a date for a product release item. I made provision for this by creating a &lt;i&gt;DateTime&lt;/i&gt; property called &lt;i&gt;Date&lt;/i&gt; in the &lt;i&gt;VersionInformation&lt;/i&gt; class. However, I encountered a problem when trying to specify a value for this property in the XAML of the page consuming the AboutBox user control&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I realized that XAML natively does not know how to convert a string to a &lt;i&gt;DateTime&lt;/i&gt; value, and setting the Date property as &lt;i&gt;Date="12 January 2009"&lt;/i&gt; would result in an AG_E_UNKNOWN_ERROR XAML parser error when running the application.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thankfully, there is a way to resolve this. The answer lies in &lt;i&gt;TypeConverter&lt;/i&gt;, and the full article can be found at &lt;a href="http://www.codeproject.com/KB/silverlight/PassingDatesInXaml.aspx"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-8071492159627894765?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/8071492159627894765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/10/passing-dates-in-xaml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/8071492159627894765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/8071492159627894765'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/10/passing-dates-in-xaml.html' title='Passing dates in XAML'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_DHkJD0p9C7M/St3R7S2mMzI/AAAAAAAAABY/YjhswQfO4H4/s72-c/AboutBoxExample.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-5383081692545198624</id><published>2009-10-19T20:53:00.000-07:00</published><updated>2009-10-19T20:55:15.848-07:00</updated><title type='text'>Microsoft announce Visual Studio 2010 dates</title><content type='html'>&lt;div&gt;Microsoft have announced that Visual Studio 2010 will officially launch on the 22nd of March 2010, and is promised to be "the most significant release" Microsoft's had of the tools suite and framework "in a number of years."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;New features include Windows 7 and SharePoint 2010 tools, drag-and-drop bindings with Silverlight and Windows Presentation Foundation, the inclusion of the Dynamic Language Runtime (DLR) for programming with scripting languages, and support for parallel programming.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Read the full article &lt;a href="http://www.theregister.co.uk/2009/10/19/visual_studio_2010_second_beta_packaging/"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-5383081692545198624?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/5383081692545198624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/10/microsoft-announce-visual-studio-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/5383081692545198624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/5383081692545198624'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/10/microsoft-announce-visual-studio-2010.html' title='Microsoft announce Visual Studio 2010 dates'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-9211959380972593195</id><published>2009-10-13T21:12:00.000-07:00</published><updated>2009-10-13T21:15:18.075-07:00</updated><title type='text'>Apple versus Microsoft: The top 20 stolen ideas</title><content type='html'>&lt;div&gt;Both Windows 7 and Mac OS X 10.6 Snow Leopard contain features that originated in the other Operating System. Some features were stolen so long ago that they've become part of the computing landscape, and it's difficult to remember who invented what.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Full article available at &lt;a href="http://infoworld.com/print/95046"&gt;InfoWorld&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-9211959380972593195?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/9211959380972593195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/10/apple-versus-microsoft-top-20-stolen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/9211959380972593195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/9211959380972593195'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/10/apple-versus-microsoft-top-20-stolen.html' title='Apple versus Microsoft: The top 20 stolen ideas'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-2959164202776025543</id><published>2009-10-12T21:01:00.000-07:00</published><updated>2009-10-12T21:02:36.873-07:00</updated><title type='text'>Silverlight ported to Linux</title><content type='html'>&lt;div&gt;Intel and Microsoft have announced a new port of Silverlight to Linux, specifically for the Intel-sponsored Moblin operating system running on Atom-powered devices such as netbooks. The port enables Intel to include Silverlight as a supported runtime in the Atom Developer Program, which will feed an iPhone-like App Store.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Microsoft has already provided Intel with Silverlight source code and test suites. Intel will build an optimized Moblin version of Silverlight, which Microsoft will supply to OEMs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Read the full article &lt;a href="http://www.theregister.co.uk/2009/09/24/silverlight_to_linux/"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-2959164202776025543?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/2959164202776025543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/10/silverlight-ported-to-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/2959164202776025543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/2959164202776025543'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/10/silverlight-ported-to-linux.html' title='Silverlight ported to Linux'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-1912076818388044636</id><published>2009-10-12T20:40:00.000-07:00</published><updated>2009-10-12T21:41:49.397-07:00</updated><title type='text'>.NET development on the iPhone</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:sans-serif, fantasy;"&gt;&lt;div&gt;A kit for developers to build Apple iPhone and iPod Touch business applications using Microsoft's .Net Framework instead of the Apple-designated C or Objective-C languages is available from Novell.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Read the full article &lt;a href="http://infoworld.com/print/91194"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The kit is available from the &lt;a href="http://monotouch.net/"&gt;MonoTouch&lt;/a&gt; site.&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-1912076818388044636?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/1912076818388044636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/10/net-development-on-iphone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/1912076818388044636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/1912076818388044636'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/10/net-development-on-iphone.html' title='.NET development on the iPhone'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-1007682930314152765</id><published>2009-10-08T19:40:00.000-07:00</published><updated>2009-10-08T19:56:22.341-07:00</updated><title type='text'>Silverlight Message Box</title><content type='html'>On the date I launched my blog, I wrote an &lt;a href="http://46apples.blogspot.com/2009/09/creating-pop-ups-with-silverlight.html"&gt;article&lt;/a&gt; on how one might use the Silverlight Toolkit to implement pop-ups.&lt;br /&gt;&lt;br /&gt;I have since taken this a step further and written a Message Box pop up user control for Silverlight using the very same framework mentioned in that blog.&lt;br /&gt;&lt;br /&gt;An article on how I did this can be found at &lt;a href="http://www.codeproject.com/KB/silverlight/SilverlightMessageBox.aspx"&gt;The Code Project&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;PS. Don't forget to vote for the article.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-1007682930314152765?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/1007682930314152765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/10/on-date-i-launched-my-blog-i-wrote.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/1007682930314152765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/1007682930314152765'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/10/on-date-i-launched-my-blog-i-wrote.html' title='Silverlight Message Box'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-6872213040793343111</id><published>2009-10-04T22:32:00.000-07:00</published><updated>2009-10-04T22:32:00.134-07:00</updated><title type='text'>Microsoft WebsiteSpark</title><content type='html'>Check out the new &lt;a href="http://www.microsoft.com/web/websitespark/"&gt;WebsiteSpark&lt;/a&gt; program from Microsoft. According to &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/09/24/announcing-the-websitespark-program.aspx"&gt;Scott Guthrie's blog&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;"WebsiteSpark is designed for independent web developers and web development companies that build web applications and web sites on behalf of others.  It enables you to get software, support and business resources from Microsoft at no cost for three years, and enables you to expand your business and build great web solutions using ASP.NET, Silverlight, SharePoint and PHP, and the open source applications built on top of them."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-6872213040793343111?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/6872213040793343111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/10/microsoft-websitespark.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/6872213040793343111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/6872213040793343111'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/10/microsoft-websitespark.html' title='Microsoft WebsiteSpark'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-7233753948035267416</id><published>2009-09-30T21:13:00.000-07:00</published><updated>2009-09-30T21:55:33.203-07:00</updated><title type='text'>Where is the List.Find() method in Silverlight?</title><content type='html'>&lt;div&gt;For any .NET developers new to Silverlight, they may find it strange that they are not able to resolve the &lt;i&gt;Find()&lt;/i&gt; method when working with Generic collections. This is a very useful method when searching a collection for a particular item.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;i&gt;Find(*)&lt;/i&gt; methods on &lt;i&gt;List&lt;/i&gt;&lt;t&gt; were added in version 2.0 of the .NET framework before LINQ. LINQ (which stands for &lt;b&gt;L&lt;/b&gt;anguage &lt;b&gt;IN&lt;/b&gt;tegrated &lt;b&gt;Q&lt;/b&gt;uery) now provides the &lt;i&gt;First()&lt;/i&gt; method, which can be used in a similar way to the &lt;i&gt;List&lt;/i&gt;&lt;t&gt;&lt;i&gt;.Find()&lt;/i&gt; method.&lt;/t&gt;&lt;/t&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since LINQ is available in Silverlight, Microsoft decided not to add the &lt;i&gt;Find&lt;/i&gt; methods to &lt;i&gt;List&lt;/i&gt;&lt;t&gt; to avoid adding duplicate functionality and to keep the size of Silverlight as small as possible.&lt;/t&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;LINQ can be used as a replacement for &lt;i&gt;List&lt;/i&gt;&lt;t&gt;&lt;i&gt;.Find(Predicate&lt;/i&gt;&lt;t&gt;&lt;i&gt;)&lt;/i&gt;:&lt;/t&gt;&lt;/t&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#66FF99;"&gt;using System.Linq;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#66FF99;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#66FF99;"&gt;var list = new List&lt;/span&gt;&lt;/span&gt;&lt;int&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#66FF99;"&gt; { 1, 2, 3, 4, 5 };&lt;/span&gt;&lt;/span&gt;&lt;/int&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#66FF99;"&gt;int item = list.First(i =&gt; i == 2); // same as calling list.Find(i =&gt; i == 2);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-7233753948035267416?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/7233753948035267416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/09/where-is-list-find-method-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/7233753948035267416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/7233753948035267416'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/09/where-is-list-find-method-in.html' title='Where is the List&lt;T&gt;.Find() method in Silverlight?'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-5224394902559842448</id><published>2009-09-29T05:50:00.000-07:00</published><updated>2009-09-28T20:47:18.657-07:00</updated><title type='text'>Announcing the birth of 46Apples!</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Today I am excited to announce that 46Apples is alive and well. Yup, my long-awaited blog is up and running and it is no coincidence that today I give birth to 46Apples, as eight years agotoday we welcomed my precious daughter Micaela into the world.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;At 46Apples you will find software development-related articles, source code, demos, and news. The scope of the content will range from the Microsoft .NET framework to Apple’s Cocoa framework. I will be posting articles on both Microsoft and Apple technologies – from Microsoft’s ASP.NET, Windows Forms, WPF (Windows Presentation Foundation), WCF (Windows Communication Foundation) and Silverlight, to Apple’s Cocoa framework, Xcode, Interface Builder, the iPhone SDK, etc.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;I have an incredible passion for the above-mentioned technologies, and it is my hope and vision to share my insights and experiences with the software development community in a mutually beneficial manner.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-5224394902559842448?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/5224394902559842448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/09/announcing-birth-of-46apples.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/5224394902559842448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/5224394902559842448'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/09/announcing-birth-of-46apples.html' title='Announcing the birth of 46Apples!'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5056955565979493802.post-1923804270961725858</id><published>2009-09-29T05:45:00.000-07:00</published><updated>2009-09-28T21:11:21.807-07:00</updated><title type='text'>Creating pop ups with the Silverlight Toolkit</title><content type='html'>&lt;span style="line-height: 115%; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;In my first article I will demonstrate how simple it is to create a pop-up window in your Silverlight applications using the Silverlight 3 Toolkit.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span style="line-height: 115%; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;This article assumes you have the following installed on your machine:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Silverlight 3 developer runtime&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span style="line-height: 115%; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;The July 2009 release of the Silverlight Toolkit for Silverlight 3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span style="line-height: 115%; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Visual Studio 2008 SP1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span style="line-height: 115%; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;If you don’t have the required Silverlig&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;span class="Apple-style-span" style=" line-height: 18px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;ht installs, you can download them from &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.silverlight.net/getstarted/"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span style="line-height: 115%; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;The article also assumes you have some familiarity with working with Microsoft Silverlight projects.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Ok, now that we have the requirements out of the way, it’s ready to get dirty (well, so to speak anyway). &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Create a Silverlight project in Visual S&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;tudio, and add a reference to the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;System.Windows.Controls&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; assembly (should be located in your &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Program Files\Microsoft SDKs\Silverlight\v3.0\Libraries\Client&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; directory if you have the toolkit installed).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Now add a new &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;User Control&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; to your Silverlight project (using the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;User Control&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; template in Visual Studio). For this user control to function as a pop-up window, it needs to be panel-beated a bit. Don’t worry; it’s not as painful as it might sound!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="line-height: 115%; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Navigate to the new user control’s XMAL (w&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;span class="Apple-style-span" style=" line-height: 18px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;hich, in case you didn’t know, stands for &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;eXtended Markup Application Language&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;).  Add an XML namespace definition so that it references the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;System.Windows.Controls&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; as follows:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;i&gt;&lt;span style="line-height: 115%; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;xmlns:Controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 17px; "&gt;&lt;i&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;and then change the opening &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;UserCo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=" font-style: normal; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;ntrol&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; tag to read &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Controls:ChildWindow&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;. Also make sure you change the closing tag to match. Save, and then open the user control’s code-behind file (with the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;.cs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; file extension). You’ll notice that the user control currently inherits from the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;UserControl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; class. Change this so that it now inherits from the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;ChildWindow&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; class. You will also have to include a using statement that references the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;System.Windows.Controls&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; namespace in the user control’s code-behind.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style=" font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;The XAML and code-behind should look something like this:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style=" font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;&lt;img src="http://3.bp.blogspot.com/_DHkJD0p9C7M/SsDOxWsbgCI/AAAAAAAAAA4/_FRq-vhaq-U/s400/PopUp+ChildWindow+XAML.png" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_DHkJD0p9C7M/SsDPd-68cBI/AAAAAAAAABA/2XFGlpJFDUU/s1600-h/PopUp+Code+Behind.png"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;&lt;img src="http://2.bp.blogspot.com/_DHkJD0p9C7M/SsDPd-68cBI/AAAAAAAAABA/2XFGlpJFDUU/s400/PopUp+Code+Behind.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5386533268348497938" style="cursor: pointer; width: 400px; height: 270px; " /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;That takes care of our new pop-up window definition. Now we need to make use of it.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Open your Silverlight application’s start up page (probably &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;MainPage.xaml&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; – did I guess it or did I guess it?), and navigate to the page’s code-behind. Create an instance of the pop up in the page’s constructor, and wire up an event handler for the pop up’s Closed event.  After setting one or two properties, it is as simple as calling the pop up’s &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Show&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; method to, well, show the pop up window. The &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;ChildWindow&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; class the pop up inherits from takes care of setting an opaque background, and animating the visual effect of showing the window (by using the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;VisualStateManager&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; as you may have guessed).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;The code-behind of &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;MainPage.xaml&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; looks like this:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DHkJD0p9C7M/SsDQMs52OmI/AAAAAAAAABI/FbDiIW0uhNo/s1600-h/MainPage+xaml+code-behind.png"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;&lt;img src="http://3.bp.blogspot.com/_DHkJD0p9C7M/SsDQMs52OmI/AAAAAAAAABI/FbDiIW0uhNo/s400/MainPage+xaml+code-behind.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5386534070965910114" style="cursor: pointer; width: 400px; height: 235px; " /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;For the purpose of the demo, I have added two buttons to demonstrate obtaining a result from the pop up after the user has closed it. The &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;ChildWindow&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; class provides a nullable bool property called &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;DialogResult&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; that can be used to determine a choice made by the user on the pop up (for example, checking whether the user clicked an &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Ok&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; or &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Cancel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt; button). &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;I have created a demo application that &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;I will make available for download later this week&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;. It covers the functionality described in this article, and although very simplistic, it will give you an idea of how to implement custom pop-up message boxes in your Silverlight 3 applications. The pop up in the demo looks as follows:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_DHkJD0p9C7M/SsDQ_hJXX4I/AAAAAAAAABQ/Shg3dOcEjm8/s1600-h/PopUp+in+action.png"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;&lt;img src="http://4.bp.blogspot.com/_DHkJD0p9C7M/SsDQ_hJXX4I/AAAAAAAAABQ/Shg3dOcEjm8/s400/PopUp+in+action.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5386534943983099778" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="color:#CCCCCC;"&gt;Happy coding&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5056955565979493802-1923804270961725858?l=46apples.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://46apples.blogspot.com/feeds/1923804270961725858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://46apples.blogspot.com/2009/09/creating-pop-ups-with-silverlight.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/1923804270961725858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5056955565979493802/posts/default/1923804270961725858'/><link rel='alternate' type='text/html' href='http://46apples.blogspot.com/2009/09/creating-pop-ups-with-silverlight.html' title='Creating pop ups with the Silverlight Toolkit'/><author><name>46 Apples</name><uri>http://www.blogger.com/profile/05912837941476457678</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_DHkJD0p9C7M/S7qoOWXFniI/AAAAAAAAADE/iaMurCThMyg/S220/46Apples+Soccer+Ball+2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_DHkJD0p9C7M/SsDOxWsbgCI/AAAAAAAAAA4/_FRq-vhaq-U/s72-c/PopUp+ChildWindow+XAML.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
