<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://cs.vbcity.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">CanOz Blog</title><subtitle type="html">Neil Knobbe&amp;#39;s place for Visual Basic.NET and WPF</subtitle><id>http://cs.vbcity.com/blogs/canoz/atom.aspx</id><link rel="alternate" type="text/html" href="http://cs.vbcity.com/blogs/canoz/default.aspx" /><link rel="self" type="application/atom+xml" href="http://cs.vbcity.com/blogs/canoz/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30417.1769">Community Server</generator><updated>2009-04-12T18:25:00Z</updated><entry><title>Expander Control and Silverlight 3</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/08/01/expander-control-and-silverlight-3.aspx" /><id>/blogs/canoz/archive/2009/08/01/expander-control-and-silverlight-3.aspx</id><published>2009-07-31T16:16:00Z</published><updated>2009-07-31T16:16:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;For a while now I knew that the WPF Expander control was going to be included for use with Silverlight 3. The official Silverlight site mentioned it more than once.&lt;/p&gt;
&lt;p&gt;I even found some blogs that showed using the Expander with Silverlight, but when the time came to insert an Expander into a new Silverlight project all the good feelings stopped.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Error and assumption number 1:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;All the new Silverlight controls are not automatically included in the Visual Studio ToolBox.&lt;/p&gt;
&lt;p&gt;I am not sure why it was done this way&amp;nbsp;but they are not.&amp;nbsp; I could see some of the new controls, like the TabControl, which I also wanted to use but not the Expander.&amp;nbsp; At the beginning this was not a big problem for me because I had other projects to work on that didn&amp;rsquo;t require the Expander, but when time came to start the project with it I was in trouble.&amp;nbsp; I asked a friend about it and he reminded me to try the &amp;ldquo;Choose ToolBox Items&amp;rdquo; option which can be found under &amp;ldquo;Tools&amp;rdquo; in the main menu of Visual Studio.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/001silverlightexpander.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Selecting the Silverlight Components tab on the new window I could choose from 40 Silverlight controls.&amp;nbsp; Everything I could want from a Border to a ToolTip.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01silverlightexpander.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;There was one problem however.&amp;nbsp; No Expander control.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/02silverlightexpander.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I was no further ahead so I did some more investigating.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Error and assumption number 2:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t just because it is written doesn&amp;rsquo;t mean that the item in question won&amp;rsquo;t change after publication.&lt;/p&gt;
&lt;p&gt;Some things can change in software&amp;nbsp;between builds and versions (beta, SDK, release, Silverlight 2, Silverlight 3 etc) and at some point in time I what I have written here there will be a good chance that I will be caught in the same trap.&lt;/p&gt;
&lt;p&gt;I spent a good amount of time on Google looking for examples of using the Expander control in a Silverlight application and found more than a few examples.&amp;nbsp; There was one common element which kept me banging my head against the wall.&amp;nbsp; Most, if not all, the examples showed adding the reference to the System.Windows.Controls library and adding the Namespace to the Silverlight UserControl.&lt;/p&gt;
&lt;p&gt;I had gotten that far as I was also using the TabControl on this particular project.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;basics&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Expander.Page&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;400&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;300&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;To get access to the Controls in the Namespace I would just type&amp;nbsp;&amp;quot;&lt;span style="color:#ff0000;"&gt;basics:&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt; in the XAML for the UserControl and Intellisense would show me the Controls available to me.&lt;/p&gt;
&lt;p&gt;Yet again there was no Expander available to me.&amp;nbsp; I was pretty sure that the Expander was useable with Silverlight 3 as there is Sample Source Code in the Silverlight 3 SDK so it followed, in my mind at least, that it should be accessible in Visual Studio.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The solution to this was in one way good to get yet in another it brought another minor annoyance with it.&lt;/p&gt;
&lt;p&gt;I re-read what &lt;a href="http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20July%202009%20change%20list" class="null"&gt;this page&lt;/a&gt;&amp;nbsp;on the Silverlight Toolkit on the CodePlex site and noticed a minor but important fact.&amp;nbsp; The Expander control is not actually in the same Library as the TabControl like I thought when I first read the page.&amp;nbsp; The TabControl is in the System.Windows.Contols library.&amp;nbsp; The Expander is in the System.Windows.Controls.Toolkit library.&amp;nbsp; I missed the &amp;ldquo;Toolkit&amp;rdquo; part and quickly realized that I would have to add another reference to the project.&lt;/p&gt;
&lt;p&gt;To add the Reference, I right clicked on References in the Solution Explorer window of the project and from the sub-menu selected &amp;ldquo;Add Reference&amp;rdquo;.&amp;nbsp; From there I clicked the &amp;ldquo;Browse&amp;rdquo; button and navigated to the Silverlight SDK directory and dug down in the sub-directories until I found the System.Windows.Controls.Toolkit.dll file, selected the file and added by clicking the &amp;ldquo;OK&amp;rdquo; button.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/04silverlightexpander.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The next step was to add the Namespace to my project.&amp;nbsp; There is time when Intellisense is really your friend.&lt;br /&gt;I started with &lt;span style="color:#ff0000;"&gt;xmlns:controls=&lt;/span&gt; and was presented with a choice to select from.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/05silverlightexpander.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Double clicking on the System.Windows.Controls.Toolkit option got Visual Studio to complete the declaration for me and I was ready to use the Expander.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;basics&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;controls&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Expander.Page&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;400&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;300&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;You would think after all this and&amp;nbsp;getting the Expander into my project&amp;nbsp;that I would finish with a really happy ending but I can&amp;rsquo;t say that I am 100% satisfied.&lt;/p&gt;
&lt;p&gt;There is still one thing that bothers me but because I now have access to the Expander control I can live with it.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;The bother?&amp;nbsp; When I type in the XAML markup for an Expander Intellisense does not show what controls are included in the Toolkit library like the Windows.Controls library does in the image above.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/06silverlightexpander.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I did find it rather interesting that it does pick up all the Properties of the Expander once I have typed in what control I am trying to use.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/07silverlightexpander.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Like I said it is a small bother but one that I can live with.&amp;nbsp; At least I have use of control I really want in my project.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=183" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /><category term="Windows Presentation Foundation" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Windows+Presentation+Foundation/default.aspx" /><category term="Silverlight 3" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Silverlight+3/default.aspx" /></entry><entry><title>Extra ScrollBars with Silverlight 3</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/07/24/extra-scrollbars-with-silverlight-3.aspx" /><id>/blogs/canoz/archive/2009/07/24/extra-scrollbars-with-silverlight-3.aspx</id><published>2009-07-24T09:24:00Z</published><updated>2009-07-24T09:24:00Z</updated><content type="html">&lt;p&gt;This was a rather interesting one that I only stumbled upon.&lt;/p&gt;
&lt;p&gt;Now that Silverlight 3 has been released, I figured it was time to update some web sites that I look after and get away from the plain HTML with CSS that I had been using.&lt;/p&gt;
&lt;p&gt;It took much less time that I thought to get the first site set out and running the way I wanted or so I thought. &lt;/p&gt;
&lt;p&gt;Most of the site content was put into a ScrollViewer as I knew it would extend past the bottom of the window and someone viewing the site would be required to scroll at some point in time.&lt;/p&gt;
&lt;p&gt;I developed the site on my laptop and it all through development and deployment it looked fine, but when I happened to take a look at the site on my desktop machine I noticed that there were two ScrollBars showing on the Internet Explorer window.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01extrascrollbar.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;This was a mystery to me as I knew that there were not two ScrollBars when I was developing the site.&lt;/p&gt;
&lt;p&gt;After a giving this problem some serious though for a while I realized what the problem may be.&amp;nbsp; Normally I keep both machines the same but currently my laptop and desktop were different in one aspect.&lt;/p&gt;
&lt;p&gt;Internet Explorer.&lt;/p&gt;
&lt;p&gt;My laptop was running Vista with Internet Explorer 7 and my desktop was running Vista with Internet Explorer 8.&amp;nbsp; At least now I knew where the problem lay.&amp;nbsp; Not how to fix the problem mind you, just why I was seeing what I was.&lt;/p&gt;
&lt;p&gt;As it turns out the fix is quite simple.&lt;/p&gt;
&lt;p&gt;When Visual Studio creates a Silverlight application, and the accompanying web site that can host the Silverlight application, it adds some CSS Style for the page.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;head&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;SilverlightApplication4&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;style&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;text/css&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;html&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;body&lt;/span&gt; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;height&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;100%&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;overflow&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;auto&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;body&lt;/span&gt; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;padding&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;margin&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;#silverlightControlHost&lt;/span&gt; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;height&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;100%&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;In the HTML above it is the value of the overflow property that determines if the ScrollBar for the window is displayed or not.&lt;/p&gt;
&lt;p&gt;IE8 is just different enough from IE7 that setting the overflow to auto generates the extra ScrollBar.&amp;nbsp; I suppose a better way to say it is that it does not let the ScrollBar from the Silverlight application replace the ScrollBar of the IE window like it does in previous versions.&lt;/p&gt;
&lt;p&gt;To get around this problem, you need to change the overflow setting from &amp;ldquo;auto&amp;rdquo; to &amp;ldquo;hidden&amp;rdquo;.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;head&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;SilverlightApplication4&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;style&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;text/css&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;html&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;body&lt;/span&gt; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;height&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;100%&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;overflow&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;hidden&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;body&lt;/span&gt; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;padding&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;margin&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;0&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#a31515;"&gt;#silverlightControlHost&lt;/span&gt; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;height&lt;/span&gt;: &lt;span style="color:#0000ff;"&gt;100%&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;style&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;Once overflow is set to hidden, IE will open without a ScrollBar which leaves the person viewing the site with the ScrollBar of the Silverlight application to use instead.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/02extrascrollbar.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;These are the kinds of problems that I like.&amp;nbsp; Nice and easy to fix.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=180" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="Windows Presentation Foundation" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Windows+Presentation+Foundation/default.aspx" /><category term="Silverlight 3" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Silverlight+3/default.aspx" /></entry><entry><title>Blending Images</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/07/19/blending-images.aspx" /><id>/blogs/canoz/archive/2009/07/19/blending-images.aspx</id><published>2009-07-18T22:35:00Z</published><updated>2009-07-18T22:35:00Z</updated><content type="html">&lt;p&gt;Recently I have been updating, or rather upgrading may be a better word, a few web sites that I have been looking after for years.&lt;/p&gt;
&lt;p&gt;I have been using some Javascript to blend images in a sort of slide show and decided that if I was going to change the web sites over to Silverlight 3.0 that it was as good as time as any to replace the decade old Javascript as well.&lt;/p&gt;
&lt;p&gt;I would like to say that I am so well versed in XAML that all I had to do was manually type in the required XAML to the Silverlight project that I started in Visual Studio, but alas such is not the case so I had to use the very handy Expression Blend as the tool to create the effect I wanted for the images.&lt;/p&gt;
&lt;p&gt;The effect I was after was to have a set of five images that would be displayed one at a time then after a set time dissolve to display the next image in an endless loop.&lt;/p&gt;
&lt;p&gt;To accomplish this I knew that I would need to create a Storyboard and use DoubleAnnimationUsingKeyFrames to get the job done.&lt;/p&gt;
&lt;p&gt;I placed all five images in one cell of a Grid,&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;setting the Height property of all the images to be the same as well as setting the Opacity of four of the images to 0 and the Opacity of the last to 1 so that only one image was visible at the start.&lt;br /&gt;So my starting XAML is:&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Window&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Window1&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Window&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Window1&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;640&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;480&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;LayoutRoot&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image1&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;pics\jps6.jpg&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Opacity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image2&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;pics\jps9.jpg&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Opacity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image3&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;pics\jps11.jpg&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Opacity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image4&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;pics\kids.jpg&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Opacity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image5&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;pics\play7.jpg&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;200&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Opacity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Window&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://www.neilknobbe.com/blogimages/02blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The next step was to create the Storyboard.&amp;nbsp; To create a Storyboard you need to click the New button located on the Objects and Timelines panel.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/03blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;After clicking the New button you are prompted to either accept the default name for the Storyboard or enter your own name for the Storyboard.&amp;nbsp; For my example I have renamed the Storyboard &amp;ldquo;BlendingImages&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/04blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Once you have accepted the name for the Storyboard, Timeline recording is turned on and a Storyline is added to the Objects and Timeline panel.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/05blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Next a KeyFrame for the Element to be changed, in my case the first image, needs to be added.&amp;nbsp; To add a KeyFrame you need to do two things.&lt;/p&gt;
&lt;p&gt;1)&amp;nbsp; In the Objects and Timeline panel select the Element you want to add the KeyFrame for. (Number 1 in the image below.)&lt;/p&gt;
&lt;p&gt;2)&amp;nbsp; Click on the Record KeyFrame Button above the Timeline. (Number 2 in the image below.)&lt;/p&gt;
&lt;p&gt;A KeyFrame will then be added to the Timeline of the Element that has been selected. (Number 3 in the image below.)&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/06blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Now that the KeyFrame has been added the Properties for the Element can be changed to what I want in the Properties Panel of the Element.&amp;nbsp; In my case I don&amp;rsquo;t actually want to make any changes to the Element just yet.&lt;/p&gt;
&lt;p&gt;The effect that I am going for is to have the image show for six seconds then fade away over the next three seconds.&amp;nbsp; When the image that is showing starts to fade, I want the next image to start to appear over the same three seconds that the current image is fading.&lt;/p&gt;
&lt;p&gt;Adding a second KeyFrame is the same as adding the first one.&amp;nbsp; Move the Timeline but using the small ScrollBar under the actual Timeline until the six second line is visible then click the Record KeyFrame button again.&amp;nbsp; A second KeyFrame for the Element will be inserted on the timeline for the Element.&lt;/p&gt;
&lt;p&gt;The second image is selected and a KeyFrame is added to the Timeline for the second image.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/07blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Once again I don&amp;rsquo;t want to make any changes to the Properties of either image, but if you wanted to all you need to do is select the Element and then set whatever Properties you want in the Properties panel for the Element.&lt;/p&gt;
&lt;p&gt;Another KeyFrame needs to be added for each image at nine seconds.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/08blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Now I am ready to make some changes to the Properties of my two images.&lt;/p&gt;
&lt;p&gt;For the first image I set the Opacity to 0 which will make it invisible and the second image I set the Opacity to 100 so that is will now be seen.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/09blendingimages.jpg" alt="" /&gt;&lt;img src="http://www.neilknobbe.com/blogimages/10blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;You will also notice that it shows in the Objects and Timeline panel that there has been changes to the Elements.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/11blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;One other point you may be curious about is why I added the KeyFrame to image1 at six seconds.&amp;nbsp; The reason for this is the change in an Elements Property is done over the entire time between KeyFrames.&amp;nbsp; As a result the image would be wholly visible for about half the time, four and a half seconds, before starting to fade prior to the second image started to appear which is not the effect I was after.&amp;nbsp; By adding the second KeyFrame at six seconds I ensured that the first image was still wholly visible at the time the second image started to fade in.&lt;/p&gt;
&lt;p&gt;You can click on the Play button in the Objects and Timeline panel to test the Effect to make sure that it is working the way you want.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/12blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The starting animation worked so I set about adding KeyFrames and setting Properties for the rest of my images to complete the blending effect.&lt;/p&gt;
&lt;p&gt;I should mentions that since I wanted this effect to repeat, the last three second of the effect I set the original image to start to become visible again and the last image fade out.&lt;/p&gt;
&lt;p&gt;To get the effect to repeat you need to set the RepeatBehaviour property of the Storyboard.&amp;nbsp; You can do this by either adding the XAML yourself or by clicking once on the name of the Storyboard in the Objects and Timelines panel then selecting the value for the RepeatBehaviour.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/13blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I wanted to effect to continually repeat so I set the property to Forever.&lt;/p&gt;
&lt;p&gt;Testing the effect showed it worked so I was able to now insert the XAML for the Storyboard into the Silverlight project in Visual Studio.&lt;/p&gt;
&lt;p&gt;Below is the complete XAML for the Storyboard.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;BlendingImages&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; RepeatBehavior&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Forever&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; BeginTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:00&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image1&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetProperty&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;(UIElement.Opacity)&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:06&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:09&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:42&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:45&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; BeginTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:00&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image2&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetProperty&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;(UIElement.Opacity)&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:06&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:09&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0.995&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:15&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0.995&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:18&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; BeginTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:00&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image3&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetProperty&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;(UIElement.Opacity)&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:15&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:18&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0.995&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:24&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0.995&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:27&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; BeginTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:00&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image4&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetProperty&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;(UIElement.Opacity)&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:24&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:27&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:33&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:36&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; BeginTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:00&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;image5&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Storyboard.TargetProperty&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;(UIElement.Opacity)&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:33&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:36&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:42&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;SplineDoubleKeyFrame&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; KeyTime&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;00:00:45&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DoubleAnimationUsingKeyFrames&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Storyboard&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;To get the effect running there was a couple of tweaks that were required in the Silverlight project.&lt;/p&gt;
&lt;p&gt;The first was I needed to give the UserControl a Name so that I could access the Events for the UserControl from the .vb code behind page.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/14blendingimages.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Opening the code behind page I went to the Loaded Event of the UserControl and added the code that would find the Storyboard as a Resource of the UserControl and start the effect when the page was loaded into the user browser.&lt;/p&gt;
&lt;p&gt;The code is relatively simple at three lines.&lt;/p&gt;
&lt;p&gt;The first line declares a Variable as a Storyboard.&lt;/p&gt;
&lt;p&gt;The second line sets the value of the Variable to be the Storyboard that I created in Blend and copied into my Silverlight project.&lt;/p&gt;
&lt;p&gt;The third line of code starts the Storyboard to begin the effect.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; BlendingImages_Loaded(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Object&lt;/span&gt;, _&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; System.Windows.RoutedEventArgs) _&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#0000ff;"&gt;Handles&lt;/span&gt; BlendingImages.Loaded&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; MyStory &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; Storyboard&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MyStory = &lt;span style="color:#0000ff;"&gt;CType&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;Me&lt;/span&gt;.Resources(&lt;span style="color:#a31515;"&gt;&amp;quot;BlendingImages&amp;quot;&lt;/span&gt;), Storyboard)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MyStory.Begin()&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;Now I have the same effect, which can be seen &lt;a target="_blank" href="http://silverlight.neilknobbe.com/blendingimages/BlendingImagesTestPage.html" class="null"&gt;here&lt;/a&gt; as I had before with a couple of benefits.&lt;/p&gt;
&lt;p&gt;The first benefit is that I am not limited to needing all the images to be exactly the same size and shape and the markup for the XAML Storyboard is less than the Javascript function.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=177" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /><category term="Expression Blend" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Expression+Blend/default.aspx" /><category term="Silverlight 3" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Silverlight+3/default.aspx" /></entry><entry><title>WPF Pages and Custom Designed Hyperlinks</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/07/15/wpf-pages-and-custom-designed-hyperlinks.aspx" /><id>/blogs/canoz/archive/2009/07/15/wpf-pages-and-custom-designed-hyperlinks.aspx</id><published>2009-07-15T06:38:00Z</published><updated>2009-07-15T06:38:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;It seems like Hyperlinks are my main focus this week.&lt;/p&gt;
&lt;p&gt;Once I had gotten the Hyperlinks with Images working for my current project, I got to thinking about my next project and just what I could get Hyperlinks to look like.&amp;nbsp; It turns out that you could do just about anything you want to create a Hyperlink.&amp;nbsp; The only thing limiting you is your imagination though you may want to temper your imagination and not make anything too gaudy.&lt;/p&gt;
&lt;p&gt;I had a vague idea of what I wanted and one thing I definitely wanted to do was use the existing colour scheme using Yellow and Teal.&amp;nbsp; Instead of two separate colours I decided I wanted to use a Gradient colour so the first thing I did was create a LinearGradientBrush as a Page Resource so I could easily re-use it throughout the project.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Page.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Key&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;MyBrush&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;StartPoint&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0,0&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; EndPoint&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1,1&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Opacity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;.75&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Color&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Yellow&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Offset&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Color&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Teal&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Offset&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;GradientStop&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;LinearGradientBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Page.Resources&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;I am going to make a small side trip here, but I feel it is an important one.&amp;nbsp; In this post, and my two previous, I mention that I am using a Windows Presentation Foundation (WPF) Page for my projects.&amp;nbsp; I also mentioned that the Users web browser, Internet Explorer 6 in this case, is going to be used to view the page.&amp;nbsp; (At the time of writing this post you can only use Internet Explorer 6 or higher to view a page with XMAL markup).&lt;/p&gt;
&lt;p&gt;Without a slight modification to a Page that is automatically generated by Visual Studio, and Expression Blend, the page itself will not open in the web browser.&amp;nbsp; There will be an error generated.&lt;/p&gt;
&lt;p&gt;When Visual Studio creates a WPF Page the XAML markup for the page looks like the following:&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Page&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Page1&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;Title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Page1&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Page&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;which is fine if you are going to run your application in a WPF Navigation window.&amp;nbsp; If you, like I want, wish to display the page directly in Internet Explorer, then you must remove the reference to the Class name.&amp;nbsp; Your XAML for the base page would now look like:&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Page&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;Title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Page1&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Page&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Now if you were to add some content to your page and try to open it with Internet Explorer the page would display assuming there are no errors in the page content XAML.&lt;/p&gt;
&lt;p&gt;With that small explanation out of the way it is back to the project.&lt;/p&gt;
&lt;p&gt;I wanted to have my Hyperlinks as an irregular shape, but not so irregular that I needed to create a Polygon shape for them.&amp;nbsp; What I was thinking of was something rectangular but with not all the corners squared.&amp;nbsp;&amp;nbsp; The easiest way that I use for this is to use a Border.&lt;/p&gt;
&lt;p&gt;Knowing that I can&amp;rsquo;t use a Hyperlink without it being in an UIElement, I put a Hyperlink in a TextBlock and added the Border XAML between the opening and closing tags of the Hyperlink.&lt;/p&gt;
&lt;p&gt;I applied the LinearGradientColor I added as a page resource as the colour, or Brush, for the Border and set the Thickness of the Border to 10.&amp;nbsp; To give the Border a look of something other than a rectangle, I changed the top left and bottom right CornerRadius to 20 and 10 respectively.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; BorderBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; MyBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;BorderThickness&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;10&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; CornerRadius&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;20,0,10,0&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This gave me a starting point as can be seen in the following screenshot.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01wpfhyperlinks3.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Yes the Border is very small, but that is only because I have not put any content into it yet.&amp;nbsp; There is also that annoying little blue line showing it to be a Hyperlink too which I will deal with later.&lt;/p&gt;
&lt;p&gt;The Border can only hold one WPF Element, which will suit my purposes fine, but if you want to be more elaborate you will need to add a container such as the Grid before adding any other Elements.&lt;/p&gt;
&lt;p&gt;I am using a TextBlock to display the Caption of the link so between the opening and closing tags of the Border I inserted the XAML for the TextBlock.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; BorderBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; MyBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;BorderThickness&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;10&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; CornerRadius&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;20,0,10,0&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Background&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; MyBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Foreground&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Teal&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; FontWeight&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Bold&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; vbCity.com&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I set three properties of the inner TextBlock, the Background to my LinearGradientBrush, the Foreground and FontWeight.&amp;nbsp; I set the FontWeight so that the Text of the TextBlock stands out a little more.&amp;nbsp; &lt;br /&gt;I now mostly had the look I was going for.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/02wpfhyperlinks3.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I say mostly because I still had the blue line under the link showing it as a link which I didn&amp;rsquo;t want.&amp;nbsp; I also have not set the link itself.&lt;/p&gt;
&lt;p&gt;Setting the NavigateUri and TextDecorations properties of the Hyperlink fixes those two remaining issues.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http:\\www.vbcity.com&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; TextDecorations&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;None&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; BorderBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; MyBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;BorderThickness&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;10&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; CornerRadius&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;20,0,10,0&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Background&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StaticResource&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; MyBrush&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;}&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;Foreground&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Teal&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; FontWeight&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Bold&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Home&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Border&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The screenshot below shows the final look of the Hyperlinks.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/03wpfhyperlinks3.jpg" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=175" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /><category term="Expression Blend" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Expression+Blend/default.aspx" /><category term="Windows Presentation Foundation" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Windows+Presentation+Foundation/default.aspx" /></entry><entry><title>Hyperlinks with Images and WPF Pages</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/07/15/hyperlinks-with-images-and-wpf-pages.aspx" /><id>/blogs/canoz/archive/2009/07/15/hyperlinks-with-images-and-wpf-pages.aspx</id><published>2009-07-14T22:31:00Z</published><updated>2009-07-14T22:31:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;Continuing on the subject, and project, from my last post I will look at using an Image, as well as other WPF Elements, instead of plain boring Text as the visual for a Hyperlink on a WPF Page.&lt;/p&gt;
&lt;p&gt;The page in question will be viewed by the user in the web browser, in the instance of my application the browser will be IE6, which will link to external sites on the Internet.&amp;nbsp; We wanted to use the logo from the sites, sometimes with a caption under the logo, rather than just a textual link.&lt;/p&gt;
&lt;p&gt;It did take me a while to figure this one out mostly because that I forgot one of the really great things about Windows Presentation Foundation (WPF) which is that just about all WPF Controls, if not all, can hold any WPF object themselves which made setting up the Image links very easy.&lt;/p&gt;
&lt;p&gt;I started out with the Hyperlink itself.&amp;nbsp; Due to the fact a Hyperlink is not a UIElement I had to place the link itself in a TextBlock.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http:\\www.vbcity.com&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Visit vbCity.com&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The image below shows the link on the page.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01wpfhyperlinks2.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;To get the image to be the Hyperlink, the XAML for the Image needs to be added between the opening and closing tags of the Hyperlink as well as removing the text of the link.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http:\\www.vbcity.com&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;.\vbcity_logo.jpg&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;So I ended up with what I originally wanted an Image as a Hyperlink as the screenshot below shows.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/02wpfhyperlinks2.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;There was one other small nit-picky detail to take care of before I was finished.&amp;nbsp; If you look closely at the next screenshot, you can see a small blue line under the image indicating that the image is a link.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/03wpfhyperlinks2.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t want the line under the image so I just had to set one more Property of the Hyperlink.&amp;nbsp; The property to be set is the TextDecorations Property of the Hyperlink to None.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http:\\www.vbcity.com&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;TextDecorations&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;None&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;.\vbcity_logo.jpg&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;Now you can see that there is no line under the link.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/04wpfhyperlinks2.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=174" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /><category term="Expression Blend" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Expression+Blend/default.aspx" /></entry><entry><title>Hyperlinks and WPF Pages</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/07/14/hyperlinks-and-wpf-pages.aspx" /><id>/blogs/canoz/archive/2009/07/14/hyperlinks-and-wpf-pages.aspx</id><published>2009-07-14T06:09:00Z</published><updated>2009-07-14T06:09:00Z</updated><content type="html">&lt;p&gt;You may not think that this topic is worthy of a blog post, but I found the process interesting when the need for me to use Hyperlinks arose while working on a project.&lt;/p&gt;
&lt;p&gt;The project, I decided, was going to use a Windows Presentation Foundation (WPF) Page to give the User easy access to a listing of documents which reside on a shared drive.&amp;nbsp; The Page would be viewed through the Users web browser (in this case IE6) and then navigate to the document they wanted by clicking on the Hyperlink.&lt;/p&gt;
&lt;p&gt;Now you may be saying to yourself that this is a trivial task and, aside from design, all that was required was to add the link to the document in the NavigateUri Property of the Hyperlink.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!-- Absolute path of File --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;file:///s:\directory1\directory2\file.doc&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;File 1&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!-- Absolute path of Internet File --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http:\\www.neilknobbe.com&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;My Site&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!-- Relative path of File --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;file.doc&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;File 1&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!-- Relative path of File in Sub-Directory --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;subdirectory\file.doc&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;File 1&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Normally this would be the case, but due to the way that User Permissions were set up there was going to be two different possible Paths that the file could be found at depending on what permissions each user had.&lt;/p&gt;
&lt;p&gt;Most users, of the application, when they open the shared drive they are pointed to a directory which resides in a directory of the root directory on the drive.&amp;nbsp; Those with special privileges get directed to a directory one step up from the normal users.&amp;nbsp;&amp;nbsp; Due to the possibility of different paths I could not use Absolute paths, like the first two Uri&amp;rsquo;s in the examples above, because I couldn&amp;rsquo;t determine which user was accessing the page.&amp;nbsp; This left me with using Relative paths for the files.&lt;/p&gt;
&lt;p&gt;Using Relative paths was fine to a degree if the files resided either in the same directory as the WPF Page or further down the directory tree of the directory the WPF Page was in.&amp;nbsp; In these cases I could use a path like the following.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!-- Relative path of File --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;file.doc&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;File 1&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!-- Relative path of File in Sub-Directory --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;subdirectory\file.doc&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;File 1&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The majority of the files, in the case of my project, were in different directories than the WPF Page itself and as such using the previous type of Relative paths was not an option.&amp;nbsp; The WPF page was in a directory of the shared drive and all the other documents that I wanted to link to resided in their own topically named directories.&lt;/p&gt;
&lt;p&gt;What I needed to do was figure out how to navigate out of the WPF Page directory and into the other directories.&lt;/p&gt;
&lt;p&gt;In the end the answer was relatively, sorry no pun intended, simple.&lt;/p&gt;
&lt;p&gt;It turned out that to work up a directory tree for a Hyperlink you only need to add a full stop in front of the path for each directory up the directory tree you want to move up.&lt;/p&gt;
&lt;p&gt;Adding one full stop to the front of the Path sets the directory to be the directory that the Page resides in.&amp;nbsp; So I could also use the following for a file in the same directory as the Page.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!-- Relative path of File --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;.\file.doc&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;File 1&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;You could also use the same format for a file in a subdirectory.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!-- Relative path of File --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;.\file.doc&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;File 1&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;If, for example, I wanted to link to a file in a sibling directory of the directory the Page resides in then I needed to two full stops to the front of the Relative path of the file.&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#008000;"&gt;&amp;lt;!-- Relative path of File in Sub-Directory --&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; NavigateUri&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;..\siblingdirectory\file.doc&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;File 1&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Hyperlink&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;As mentioned above, the first full stop sets the path to the directory that the Page resides in and each additional full stop moves one directory up the tree.&lt;/p&gt;
&lt;p&gt;In the case of my application the two full stops took the path up to what most users would see as the root directory of the shared drive, after that it was just a case of adding the sub-directory, or sub-directories, and the file name to complete the link.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=173" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /><category term="Expression Blend" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Expression+Blend/default.aspx" /></entry><entry><title>Deploying A Silverlight 2 Application</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/06/21/deploying-a-silverlight-2-application.aspx" /><id>/blogs/canoz/archive/2009/06/21/deploying-a-silverlight-2-application.aspx</id><published>2009-06-20T17:32:00Z</published><updated>2009-06-20T17:32:00Z</updated><content type="html">&lt;p&gt;Either I am missing something or the information is just not out there in an obvious place.&lt;/p&gt;
&lt;p&gt;What I am talking about is deployment of Applications.&amp;nbsp; Windows, WPF, ASP.NET or Silverlight &lt;br /&gt;it all seems to be the same.&amp;nbsp; There is plenty of information about how to develop Applications but &lt;br /&gt;deployment seems to be a lacking topic.&lt;/p&gt;
&lt;p&gt;I was recently brought into a conversation about Silverlight 2 due to my interest in WPF and an &lt;br /&gt;application that I was developing for where I work.&amp;nbsp; The application is a WPF page that is run in &lt;br /&gt;the Users web browser and due to this it was suggested that Silverlight may be what I want to &lt;br /&gt;use to develop the application with.&amp;nbsp; As it turns out due to some limitations, or perhaps a better &lt;br /&gt;reason would be my lack of knowledge, that using Silverlight is not an option for my application &lt;br /&gt;but I am digressing from the topic of this post a little.&lt;/p&gt;
&lt;p&gt;My first look at Silverlight was with Silverlight 1.0 as I didn&amp;rsquo;t have 2.0 downloaded and installed at the time.&lt;/p&gt;
&lt;p&gt;There was nothing amazing about the project, just a red rectangle on a page as the whole object &lt;br /&gt;of my looking at Silverlight was to see about what files needed to be uploaded to the web server &lt;br /&gt;so the application could run.&amp;nbsp; The project consisted of 4 files.&amp;nbsp; One .html file, one .xaml files, &lt;br /&gt;one .xaml.js&amp;nbsp; file and one .js file.&lt;/p&gt;
&lt;p&gt;I uploaded the four files onto my server and the project ran as it should displaying my red rectangle.&lt;/p&gt;
&lt;p&gt;Deploying a Silverlight application seemed pretty easy.&amp;nbsp; In a way I was right and in a way I was wrong.&amp;nbsp; &lt;br /&gt;Deploying a Silverlight 1.0 application was easy, but that didn&amp;rsquo;t seem to be the case when I created &lt;br /&gt;my first Silverlight 2.0 application.&lt;/p&gt;
&lt;p&gt;I first knew I was in trouble when I created the application in Visual Studio 2008 and right off the bat &lt;br /&gt;I was given choices of how I wanted to set the application up.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01silverlightdeployment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Not being sure what I wanted, and having worked a little with an ASP.NET web site before I chose &lt;br /&gt;that option from the Project Type dropdown box.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/02silverlightdeployment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;My sense of foreboding got worse as I looked at the number of files that resided in the Solution &lt;br /&gt;Explorer window.&amp;nbsp; Xaml files, xaml.vb files, aspx files aspx.vb files, js files, config files I was &lt;br /&gt;beginning to wonder what I had gotten myself into and how I was going to get myself out.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/03silverlightdeployment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I pushed ahead and put an Ellipse, a Rectangle and a Button on my Page.xaml.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;SilverlightApplication3.Page&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;400&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;300&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Background&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;White&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Grid.Row&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Margin&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;20&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Content&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Change Colours&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Click&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Button1_Click&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Ellipse&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Fill&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Blue&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Grid.Row&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;150&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Ellipse1&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Ellipse&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;150&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Grid.Row&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Fill&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Red&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Rect1&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;UserControl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;In the code behind page I wired up the Click Event of the Button to swap the colours of the &lt;br /&gt;Ellipse and Rectangle as well as change the Content of the Button.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;Private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt; Button1_Click(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; System.Object, _&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; System.Windows.RoutedEventArgs)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Ellipse1.Fill = &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; SolidColorBrush(Color.FromArgb(254, 254, 0, 0))&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Rect1.Fill = &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; SolidColorBrush(Color.FromArgb(254, 0, 0, 254))&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Button1.Content = &lt;span style="color:#a31515;"&gt;&amp;quot;Colour Changed!&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Sub&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;Having read through Scott Guthrie&amp;rsquo;s &lt;a target="_blank" href="http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-1-creating-quot-hello-world-quot-with-silverlight-2-and-vs-2008.aspx" class="null"&gt;Silverlight tutorials&lt;/a&gt; I knew that when the project &lt;br /&gt;was built there was a .xap file (pronounced &amp;ldquo;zap&amp;rdquo;) complied and placed in the ClientBin directory &lt;br /&gt;of the ASP.NET Web Site that would be hosting the Silverlight application.&amp;nbsp; Sure enough after &lt;br /&gt;building the project the .xap file appeared.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/04silverlightdeployment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I ran the project and sure enough when my web browser opened there was the Button, &lt;br /&gt;Ellipse and Rectangle all hosted nicely in the .aspx page.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/05silverlightdeployment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;and when I clicked the Button, the colours of the shapes changed as well as the content &lt;br /&gt;of the Button as is it was supposed to.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/06silverlightdeployment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I was actually no closer to knowing what I needed to upload to my server, but at least &lt;br /&gt;I had a working application.&lt;/p&gt;
&lt;p&gt;One thing I did know was that I didn&amp;rsquo;t really want to have the application run as a ASP.NET &lt;br /&gt;web site on the server and I figured that it had to be able to be run from the .html page or &lt;br /&gt;there would be no reason for the .html page to be created when the project was created.&lt;/p&gt;
&lt;p&gt;To test my theory on this I navigated to where the .html page resided on the hard drive and &lt;br /&gt;double clicked on it.&amp;nbsp; The controls were there when it opened and the application worked like it &lt;br /&gt;should so I knew for a certainty that I didn&amp;rsquo;t need to have the web site configured as an ASP.NET &lt;br /&gt;web site. &lt;/p&gt;
&lt;p&gt;I went back and re-read &lt;a target="_blank" href="http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-1-creating-quot-hello-world-quot-with-silverlight-2-and-vs-2008.aspx" class="null"&gt;Scott Guthrie&amp;rsquo;s tutorial&lt;/a&gt; about the .xap file being hosted within the web &lt;br /&gt;page which got me to thinking that the only files I needed to upload were the .html file and the &lt;br /&gt;ClientBin directory and the .xap file that resides in it.&lt;/p&gt;
&lt;p&gt;I uploaded the files to my web server, typed in the address of the .html page and ran smack into &lt;br /&gt;an error.&amp;nbsp; The application would not run.&lt;/p&gt;
&lt;p&gt;The error as it turned out was not because of my uploading the wrong files rather it turned out &lt;br /&gt;that I didn&amp;rsquo;t have the correct MIME type added to the site which was a new one to me.&lt;/p&gt;
&lt;p&gt;In order to get a Silverlight application to run on a web site you need to add the correct MIME &lt;br /&gt;type and extension.&lt;/p&gt;
&lt;p&gt;The MIME type and Extension are:&lt;/p&gt;
&lt;p&gt;MIME type: application/x-silverlight-app&lt;br /&gt;Extension : .xap&lt;/p&gt;
&lt;p&gt;Once you have this added to your site, the Silverlight application will run just like it does on the &lt;br /&gt;development machine.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/11silverlightdeployment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/12silverlightdeployment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a target="_blank" href="http://silverlight.neilknobbe.com/SilverlightApplication3TestPage.html" class="null"&gt;link&lt;/a&gt; in the images is live and you can visit it to see the application in action.&lt;/p&gt;
&lt;p&gt;So the short answer to the question &amp;quot;What files do you need to upload to get a Silverlight &lt;br /&gt;application to work on the Internet if you want to host your application in a .html page?&amp;quot;&lt;/p&gt;
&lt;p&gt;Files:&lt;br /&gt;&lt;br /&gt;.html host page&lt;br /&gt;ClientBin directory and the .xap file that resides in it.&lt;br /&gt;&lt;br /&gt;The following MIME Type and Extension must be added to your server:&lt;br /&gt;&lt;br /&gt;MIME type: application/x-silverlight-app&lt;br /&gt;Extension : .xap&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=152" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="VB.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/VB.NET/default.aspx" /><category term="Expression Blend" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Expression+Blend/default.aspx" /><category term="Deployment" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Deployment/default.aspx" /><category term="Silverlight" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Silverlight/default.aspx" /></entry><entry><title>TabControl with WPF and Visual Basic.NET 2008 Project</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/04/13/tabcontrol-with-wpf-and-visual-basic-net-2008-project.aspx" /><id>/blogs/canoz/archive/2009/04/13/tabcontrol-with-wpf-and-visual-basic-net-2008-project.aspx</id><published>2009-04-13T08:13:00Z</published><updated>2009-04-13T08:13:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;TabControl with WPF and Visual Basic.NET 2008 Project&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sometimes it just takes me a while, but I finally got to the point where I figured I should also be including the Visual Basic projects to go along with the posts and the videos. &lt;/p&gt;
&lt;p&gt;You can download the project that goes along with the &lt;a target="_blank" href="http://cs.vbcity.com/blogs/canoz/archive/2009/04/13/tabcontrol-with-wpf-and-visual-basic-net-2008.aspx"&gt;TabControl with WPF and Visual Basic.NET 2008&lt;/a&gt; post.&lt;/p&gt;
&lt;p&gt;The project can be downloaded from &lt;a target="_blank" href="http://www.neilknobbe.com/projects/TabControl_VB.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My apologies for the size of the file.&amp;nbsp; It is a little bloated because of having the video file.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=139" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="Visual Basic.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Basic.NET/default.aspx" /><category term="VB.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/VB.NET/default.aspx" /></entry><entry><title>TabControl with WPF and Visual Basic.NET 2008</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/04/13/tabcontrol-with-wpf-and-visual-basic-net-2008.aspx" /><id>/blogs/canoz/archive/2009/04/13/tabcontrol-with-wpf-and-visual-basic-net-2008.aspx</id><published>2009-04-13T07:47:00Z</published><updated>2009-04-13T07:47:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;TabControl with WPF and Visual Basic.NET 2008&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A while back &lt;a target="_blank" href="http://cs.vbcity.com/blogs/canoz/archive/2009/04/11/tabcontrol-with-wpf.aspx"&gt;I posted up&lt;/a&gt; about showing more interesting content on that tab &lt;br /&gt;of a tab control using Windows Presentation Foundation (WPF).&lt;/p&gt;
&lt;p&gt;In the example that I posted, I created the custom look of the tab control just using &lt;br /&gt;XAML and I thought that it would be good to also show how to do the same thing &lt;br /&gt;using Visual Basic.&lt;/p&gt;
&lt;p&gt;To do this I decided to cut back to the basics for the content of the tabs and I started &lt;br /&gt;with a tab control with four tabs.&amp;nbsp; The first tab had a textblock with some text as well &lt;br /&gt;as a couple style blocks in it.&amp;nbsp; The second tab starts with a stack panel.&amp;nbsp; The third &lt;br /&gt;and fourth tabs have grids on them.&lt;/p&gt;
&lt;p&gt;The XAML for my base project is.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Window&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Window1&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Window1&amp;quot;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#ff0000;"&gt; Title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Window1&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;437&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;532&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; WindowStartupLocation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;CenterScreen&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Form1&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabControl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Tab1&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem.Header&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Tab1TextBlock&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Span&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Tab1TbSpan1&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Words&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Span&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Span&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Tab1TbSpan2&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;in&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Span&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Span&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Tab1TbSpan3&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Italics&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Span&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem.Header&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;15&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Tab2&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem.Header&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Stack&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Orientation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Horizontal&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;21&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem.Header&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;23&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Tab3&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem.Header&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;25&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Grid1&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;27&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;28&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem.Header&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;30&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;31&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem.Header&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;32&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Grid2&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;33&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem.Header&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;36&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabItem&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;37&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;TabControl&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;38&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a31515;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;39&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Window&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The window does not look too interesting yet,&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01TabControl_VB.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;but we will make it look better soon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Tab 1&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Within the XAML of the text block that is in the first tab, I have added in where &lt;br /&gt;I want the different styles to be.&amp;nbsp; I have giving the each span block a name so &lt;br /&gt;that it can be referenced by the code behind.&lt;/p&gt;
&lt;p&gt;There are different ways to go about this depending on what you want to do.&amp;nbsp; &lt;br /&gt;As you will see I have created one style with several different properties, since &lt;br /&gt;I am only going to be setting one property per span block I have only created &lt;br /&gt;one new style, or you can create a new style for each span block if you are &lt;br /&gt;going to have different styles for overlapping properties.&lt;/p&gt;
&lt;p&gt;I started off by declaring a variable as a New Span, then I set the properties &lt;br /&gt;for the variable that I wanted.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; s &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; Span&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;s.Foreground = Brushes.Blue&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;s.FontWeight = FontWeights.Bold&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;s.FontStyle = FontStyles.Italic&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Now that I have the properties set, I just need to assign them to the various &lt;br /&gt;spans that I have on my tab.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;Tab1TbSpan1.Foreground = s.Foreground&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;Tab1TbSpan2.FontWeight = s.FontWeight&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;Tab1TbSpan3.FontStyle = s.FontStyle&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Tab one now has something more elaborate on it.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/02TabControl_VB.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Admittedly, I could have just used Brushes.Blue to set the Foreground of &lt;br /&gt;the first span, but by creating and using a new span I can now re-use this &lt;br /&gt;over and over in my code if I wanted to and if I wanted to change the &lt;br /&gt;colour, then I would only have to change one line of code rather than &lt;br /&gt;possibly having to several to change.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Tab 2&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tab 2 starts out with a stack panel on it with the orientation of the stack &lt;br /&gt;panel set to horizontal.I could have set the orientation of the stack panel &lt;br /&gt;with VB code if I wanted by using:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;With&lt;/span&gt; Stack &lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Orientation = Orientation.Horizontal&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;14&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;With&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;if I wanted.&lt;/p&gt;
&lt;p&gt;In the stack panel I am going to place a text block, a rectangle and a circle.&lt;/p&gt;
&lt;p&gt;To add the text block, I need to start out with declaring a new text block &lt;br /&gt;then set the Text property.&amp;nbsp; With that done the last line of code adds the &lt;br /&gt;text block to the stack panel.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;16&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;With&lt;/span&gt; tb &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; TextBlock&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;17&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;18&lt;/span&gt;&amp;nbsp;tb.Text = &lt;span style="color:#a31515;"&gt;&amp;quot;Circles and Rectangles&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;19&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/span&gt;&amp;nbsp;Stack.Children.Add(tb)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I now have a caption on the second tab.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/03TabControl_VB.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Next I want to have a circle showing on the tab, so I declare a variable to &lt;br /&gt;hold a new ellipse and then set the Height, Width, and Fill.&amp;nbsp; I also set the &lt;br /&gt;Margin for the ellipse to a new thickness and pass the numeric &lt;br /&gt;representations of left, top, right and bottom to position the ellipse on &lt;br /&gt;the tab.&amp;nbsp; Once I have the properties I want set, I add the ellipse to the &lt;br /&gt;stack panel.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;23&lt;/span&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; c &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; Ellipse&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;24&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;25&lt;/span&gt;&amp;nbsp;c.Height = 20&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;26&lt;/span&gt;&amp;nbsp;c.Width = 20&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;27&lt;/span&gt;&amp;nbsp;c.Fill = Brushes.Blue&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;28&lt;/span&gt;&amp;nbsp;c.Margin = &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; Thickness(10, 0, 0, 0)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;29&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;30&lt;/span&gt;&amp;nbsp;Stack.Children.Add(c)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Tab 2 now has a caption and a circle on it.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/04TabControl_VB.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The last item I wanted on the tab was a rectangle, so I did much the same &lt;br /&gt;for this as for adding the ellipse.&amp;nbsp; I declared a variable to hold a new &lt;br /&gt;rectangle then set the Height, Width and Fill.&amp;nbsp; Again I set the margin &lt;br /&gt;property to a new thickness to position the rectangle on the tab.&amp;nbsp; Then I &lt;br /&gt;added the rectangle to the stack panel.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;32 &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; r &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; Rectangle&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;33&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;34&lt;/span&gt;&amp;nbsp;r.Height = 15&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;35&lt;/span&gt;&amp;nbsp;r.Width = 25&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;36&lt;/span&gt;&amp;nbsp;r.Fill = Brushes.Red&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;37&lt;/span&gt;&amp;nbsp;r.Margin = &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; Thickness(10, 0, 0, 0)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;38&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;39&lt;/span&gt;&amp;nbsp;Stack.Children.Add(r)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I now have my desired look for the second tab.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/05TabControl_VB.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Tab 3&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Tab 3 will hold an image.&lt;/p&gt;
&lt;p&gt;Once again I start off by declaring a variable which will hold a new image, &lt;br /&gt;then set the Width and Source properties.The source property is declared &lt;br /&gt;as a New BitmapImage and the path of the image file, as well as what &lt;br /&gt;kind of Uri the path is, are passed as parameters of the Uri of the file.&amp;nbsp; &lt;br /&gt;The image control is then added to the grid on the tab.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;41 &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; v &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; Image&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;42&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;43&lt;/span&gt;&amp;nbsp;v.Width = 80&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;44&lt;/span&gt;&amp;nbsp;v.Source = &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; BitmapImage(&lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; Uri(&lt;span style="color:#a31515;"&gt;&amp;quot;Lizard004_RJ.JPG&amp;quot;&lt;/span&gt;,&amp;nbsp;_&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UriKind.Relative))&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;45&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;46&lt;/span&gt;&amp;nbsp;Grid1.Children.Add(v)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The third tab now displays an image.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/06TabControl_VB.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Tab 4&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The last tab on my tab control is going to display a video.&lt;/p&gt;
&lt;p&gt;I start out by declaring a variable to hold a new instance of a media element, &lt;br /&gt;then set the Width and Source properties of the element before adding the &lt;br /&gt;control to the grid on the fourth tab. &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="font-family:Courier New;font-size:10pt;color:black;background:white;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;48 &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Dim&lt;/span&gt; m &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; MediaElement&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;49&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;50&lt;/span&gt;&amp;nbsp;m.Width = 80&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;51&lt;/span&gt;&amp;nbsp;m.Source = &lt;span style="color:#0000ff;"&gt;New&lt;/span&gt; Uri(&lt;span style="color:#a31515;"&gt;&amp;quot;butterfly.wmv&amp;quot;&lt;/span&gt;, UriKind.Relative)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;52&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;53&lt;/span&gt;&amp;nbsp;Grid2.Children.Add(m)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The tab now displays the video and completes the effect I was after.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/07TabControl_VB.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;So you can see that it can be just as easy to do in Visual Basic what you &lt;br /&gt;can with XAML.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=137" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="Visual Basic.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Basic.NET/default.aspx" /><category term="VB.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/VB.NET/default.aspx" /></entry><entry><title>Video for Gadget Window</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/04/13/video-for-gadget-window.aspx" /><id>/blogs/canoz/archive/2009/04/13/video-for-gadget-window.aspx</id><published>2009-04-12T23:11:00Z</published><updated>2009-04-12T23:11:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Video for Gadget Window&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I have finished the video showing the process for creating a Gadget Style window.&lt;/p&gt;
&lt;p&gt;You can download it from &lt;a href="http://www.neilknobbe.com/videos/gadget.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=136" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="XAML" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/XAML/default.aspx" /><category term="WPF" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/WPF/default.aspx" /><category term="Visual Basic.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Basic.NET/default.aspx" /><category term="VB.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/VB.NET/default.aspx" /></entry><entry><title>Multi-Line commenting</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/04/12/multi-line-commenting.aspx" /><id>/blogs/canoz/archive/2009/04/12/multi-line-commenting.aspx</id><published>2009-04-12T09:39:00Z</published><updated>2009-04-12T09:39:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Multi-Line commenting&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are times when I have to wonder if I am the only person who does not know &lt;br /&gt;some things.&lt;/p&gt;
&lt;p&gt;I ran into this self doubt again the other day when I was watching one of Ron Cundiff&amp;#39;s &lt;br /&gt;&lt;a target="_blank" href="http://msdnwebcastportal.com/DesktopDefault.aspx?tabindex=4&amp;amp;tabid=23"&gt;VB.NET Soup To Nuts&lt;/a&gt; WebCasts. &lt;/p&gt;
&lt;p&gt;During the WebCast one of the participants asked if there was a way to comment multiple &lt;br /&gt;lines of code.&amp;nbsp; When I heard this my ears perked up and I got very interested.&lt;/p&gt;
&lt;p&gt;In the, almost, ten years that I have been writing code, I always have commented out any &lt;br /&gt;lines of code I didn&amp;#39;t want to run one line at a time.&amp;nbsp; What a time consuming effort that can &lt;br /&gt;be depending on the number of lines you are working with.&amp;nbsp; I also ended up with unformatted &lt;br /&gt;(not indented) code,&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/07comment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;and usually put the comment apostrophe in the wrong place when an indented line of code &lt;br /&gt;moved once the one above had been commented out.&lt;/p&gt;
&lt;p&gt;Well this is all changed now.&amp;nbsp; Low and behold there are buttons in the Visual Studio IDE that &lt;br /&gt;let you comment out, or uncomment, any lines of code that you have selected.&amp;nbsp; All this time &lt;br /&gt;I had a simple way literally staring me in the face.&lt;/p&gt;
&lt;p&gt;Right in the main Toolbar there is the Comment Button&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01comment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;and the Uncomment Button.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/02comment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Now all I need to do to comment, or uncomment, multiple lines is highlight the code I &lt;br /&gt;want and click a button.&lt;/p&gt;
&lt;p&gt;One other great thing about this feature is that the code stays formatted (indented) even &lt;br /&gt;after commenting which, I believe, makes it much easier to read.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/04comment.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;*sigh*&amp;nbsp; Now I only have to wonder what other time saving &amp;ldquo;wonders&amp;rdquo; I will have to wait &lt;br /&gt;ten years to discover. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=134" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="Visual Basic.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Basic.NET/default.aspx" /><category term="VB.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/VB.NET/default.aspx" /><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /></entry><entry><title>ClickOnce Deployment – Deploying files with your application</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/04/12/clickonce-deployment-deploying-files-with-your-application.aspx" /><id>/blogs/canoz/archive/2009/04/12/clickonce-deployment-deploying-files-with-your-application.aspx</id><published>2009-04-12T09:36:00Z</published><updated>2009-04-12T09:36:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;ClickOnce Deployment &amp;ndash; Deploying files with your application&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In a &lt;a href="http://cs.vbcity.com/blogs/canoz/archive/2009/04/12/deploying-applications-with-clickonce.aspx"&gt;previous post&lt;/a&gt;, I showed you how you can deploy your application using ClickOnce.&amp;nbsp; &lt;br /&gt;Looking at how to deploy extra files, like my first look at ClickOnce, was prompted by a &lt;br /&gt;&lt;a target="_blank" href="http://www.vbcity.com/forums/topic.asp?tid=155077"&gt;post on vbCity&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now I will admit that I wasn&amp;rsquo;t as sharp answering the original question as I could have &lt;br /&gt;been so be gentle with your opinion of me if you read through the thread.&amp;nbsp; (In fact it &lt;br /&gt;took me two days to work out that when the person asking mentioned the &amp;quot;Publish&amp;quot; tab &lt;br /&gt;that they meant ClickOnce.&amp;nbsp; I guess this is what I get for trying to answer questions a 3:30am.)&lt;/p&gt;
&lt;p&gt;Once I was in synch with the problem a little research provided me with an answer.&lt;/p&gt;
&lt;p&gt;You would have thought that once you added the files to your project in Visual Studio &lt;br /&gt;that they would be automatically included in the deployment package but this is not the &lt;br /&gt;case.&amp;nbsp; I added the file to my project,&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/003ClickOnceAddFiles.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;but if you were to then take a look at the files that are included in the deployment &lt;br /&gt;package by going to the Publish tab of your projects properties page and click the &lt;br /&gt;&amp;quot;Application Files&amp;quot; button you get a nasty little shock.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/007ClickOnceAddFiles.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;No additional file even though we have added it to the project.&lt;/p&gt;
&lt;p&gt;The reason for this is that we have not told Visual Studio what we want to do with &lt;br /&gt;the file.&amp;nbsp; What is needed is to make one change to the properties of the file.&amp;nbsp; The &lt;br /&gt;property we want to change is the Build property.&lt;/p&gt;
&lt;p&gt;By default, depending on the extension of the file,&amp;nbsp;when you add a file to a Visual &lt;br /&gt;Studio project the Build property is set to &amp;quot;None&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/004ClickOnceAddFiles.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;(If you were using a deployment method like creating a Windows Installer file (.msi) &lt;br /&gt;then this would not be a problem because of the was you create the Installer file.&amp;nbsp; &lt;br /&gt;With ClickOnce deployment unless you change the Build property it assumes that &lt;br /&gt;you don&amp;rsquo;t want to include the file in the deployment package.)&lt;/p&gt;
&lt;p&gt;In the properties window of the file select &amp;ldquo;Content&amp;rdquo; from the choices for the files &lt;br /&gt;Build property.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/005ClickOnceAddFiles.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Now ClickOnce will recognize that the file is to be deployed with your application and &lt;br /&gt;if you go back to the My Properties page of your app, click on the &amp;quot;Publish&amp;quot; tab and &lt;br /&gt;click on the &amp;quot;Application Files&amp;quot; button you will see that the file in the list of files to be &lt;br /&gt;included.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/008ClickOnceAddFiles.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Publish your application, then you can do a test install and you will see by looking at &lt;br /&gt;the files that are installed on your computer now include the additional files.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/009ClickOnceAddFiles.jpg" alt="" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=132" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /></entry><entry><title>ClickOnce increments</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/04/12/clickonce-increments.aspx" /><id>/blogs/canoz/archive/2009/04/12/clickonce-increments.aspx</id><published>2009-04-12T09:34:00Z</published><updated>2009-04-12T09:34:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;ClickOnce increments&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Rockford Lhotka &lt;a href="http://www.lhotka.net/weblog/ClickOnceAndIncrementalUpdates.aspx"&gt;posted up&lt;/a&gt; some details about how ClickOnce handles what is downloaded &lt;br /&gt;when it performs an incremental update.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The more I look at ClickOnce the more I am coming to appreciate it.&lt;/p&gt;
&lt;p&gt;I know this goes against the ClickOnce idea, but if the end user could only determine &lt;br /&gt;where the Application is installed.&amp;nbsp; I suppose if I want to be that fussy I would just distribute &lt;br /&gt;and install via a Windows Installer file. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=131" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /></entry><entry><title>Deploying applications with ClickOnce</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/04/12/deploying-applications-with-clickonce.aspx" /><id>/blogs/canoz/archive/2009/04/12/deploying-applications-with-clickonce.aspx</id><published>2009-04-12T09:28:00Z</published><updated>2009-04-12T09:28:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Deploying applications with ClickOnce&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ClickOnce Deployment&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A recent post on &lt;a href="http://www.vbcity.com/"&gt;vbCity &lt;/a&gt;regarding deploying an application with ClickOnce got me &lt;br /&gt;wondering about doing deployment with ClickOnce.&lt;/p&gt;
&lt;p&gt;I have always done deployment of applications by creating and using a Setup and &lt;br /&gt;Deployment package which created a .msi installer file, so it was interesting to &lt;br /&gt;see some of the differences between the two distribution methods.&lt;/p&gt;
&lt;p&gt;First off I created a simple application to test the ClickOnce distribution and &lt;br /&gt;installation method with.&amp;nbsp; What I created was nothing special, just a windows form &lt;br /&gt;with at button that, when it&amp;nbsp;is&amp;nbsp;clicked, a message box is shown.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/02ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;As you can see the application is nothing special.&amp;nbsp; One other thing that I did was &lt;br /&gt;add a version number to the text of the form.&amp;nbsp; I did this to show how ClickOnce &lt;br /&gt;deployment installs newer versions as they are available.&amp;nbsp; I will get to this a little &lt;br /&gt;later.&lt;/p&gt;
&lt;p&gt;Once your application is ready to go you want to open up the &lt;strong&gt;My Project&lt;/strong&gt; page &lt;br /&gt;from the solution explorer.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/03ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;On the My Project&amp;nbsp; page click the Publish tab.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/04ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;From this page, you define where your application is going to be available from&lt;br /&gt; and how it is going to be installed on the client machine. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/05ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Taking a look at the publish page from the top down the first thing you will want &lt;br /&gt;to enter will be the location (URL) that you are going to publish to.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/06ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;As you can see from the image above, you have three options for the location &lt;br /&gt;that you are going to publish to.&amp;nbsp; You can publish to a web site &lt;br /&gt;(&lt;a href="http://www.somesite.com/"&gt;http://www.somesite.com&lt;/a&gt;) but to do this you must have FrontPage extensions &lt;br /&gt;enabled on the web site.&amp;nbsp; You can publish to a ftp server (&lt;a&gt;ftp://www.somesite.com&lt;/a&gt;) &lt;br /&gt;as long as you have ftp permissions for the site, or you can publish to a local file &lt;br /&gt;(C:\myApplication). (For distribution this last option is not really that realistic &lt;br /&gt;unless you are on an internal network where you can share out the directory to &lt;br /&gt;others on the network.)&lt;/p&gt;
&lt;p&gt;The next option you have is to determine if you application is available offline or not. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/07ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t want the users to be able to access your application offline then &lt;br /&gt;select the online option.&amp;nbsp; This will cause your application to run, but not show in &lt;br /&gt;the start menu of the user&amp;rsquo;s computer.&amp;nbsp; They would need to download the &lt;br /&gt;application each time they wanted to use your application.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;If you make the application available offline then a shortcut is included in the &lt;br /&gt;start menu of the computer making the application accessible all the time.&lt;/p&gt;
&lt;p&gt;To the right of the Install settings there is a group of four buttons.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/08ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;These buttons define what files are to be included with your application, any &lt;br /&gt;prerequisites that the end user must have installed on their computer to run &lt;br /&gt;your application, how and when to get updates as well as options such as &lt;br /&gt;adding the publishers name, product name etc.&lt;/p&gt;
&lt;p&gt;Under the install mode and the buttons there is the version boxes plus the &lt;br /&gt;option to automatically increment the revision with each publish.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/09ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Keeping the increment box checked is, I believe, quite important.&amp;nbsp; If you don&amp;rsquo;t &lt;br /&gt;remember to increment the version number when you republish the &lt;br /&gt;application then the next time the application checks for updates it looks at &lt;br /&gt;the version number and if that number has not changed, even though your &lt;br /&gt;application may have, it assumes that there is nothing newer and opens the &lt;br /&gt;currently installed version.&lt;/p&gt;
&lt;p&gt;The last two items on the window are the Publish Wizard and Publish Now &lt;br /&gt;buttons.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/10ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The Publish Wizard button will open a series of dialogues and walk you &lt;br /&gt;through the settings that you want your installer to use.&lt;/p&gt;
&lt;p&gt;The Publish Now button will use the information that you have entered &lt;br /&gt;on the page and create the installer files then, if you are deploying the &lt;br /&gt;files to either a web site or ftp site, prompt you for log on details.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/13ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Simply insert your username and password then click the OK button and the &lt;br /&gt;files required will be uploaded to the URL you specified.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/14ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;You can see in the image above that ClickOnce has created two files and one &lt;br /&gt;directory on the web server.&amp;nbsp; Within the Application Files directory you would &lt;br /&gt;find one directory containing each version that has been published and uploaded.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/17ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;I just happen to have two versions in the application files directory and the one &lt;br /&gt;that will get distributed will always be the latest version.&amp;nbsp;(I mentioned earlier that &lt;br /&gt;I had put a version number&amp;nbsp;on the text of the&amp;nbsp;form and the version number you &lt;br /&gt;should see is 2&amp;nbsp;not 1 like the image&amp;nbsp;of the form above.)&amp;nbsp;It would not matter how &lt;br /&gt;many older versions I have on my server.&lt;/p&gt;
&lt;p&gt;Now you may distribute the address of your application to your clients.&amp;nbsp; The file &lt;br /&gt;that you want to point to is the Application Manifest file, not the setup file.&amp;nbsp; &lt;br /&gt;From the image above I would point people to the URL &lt;br /&gt;&lt;a target="_blank" href="http://www.neilknobbe.com/clickonce/ClickOnce.application"&gt;http://www.neilknobbe.com/clickonce/ClickOnce.application&lt;/a&gt;.&amp;nbsp; (The link is live &lt;br /&gt;and you can navigate to it, download and install the application that I &lt;br /&gt;mentioned at the start of this post.&amp;nbsp; It is not very exciting, but it shows how &lt;br /&gt;ClickOnce works.)&lt;/p&gt;
&lt;p&gt;The prerequisites for installation, which you would have set earlier, are checked.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/25ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;If all is ok, the user will be prompted to install the application.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/24ClickOnce.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Once installed your ClickOnce deployed application is ready to use.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=129" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="Visual Basic.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Basic.NET/default.aspx" /><category term="VB.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/VB.NET/default.aspx" /><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /></entry><entry><title>Text and Image for Button with Visual Studio 2005</title><link rel="alternate" type="text/html" href="/blogs/canoz/archive/2009/04/12/text-and-image-for-button-with-visual-studio-2005.aspx" /><id>/blogs/canoz/archive/2009/04/12/text-and-image-for-button-with-visual-studio-2005.aspx</id><published>2009-04-12T09:25:00Z</published><updated>2009-04-12T09:25:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Text and Image for Button with Visual Studio 2005&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ok, let&amp;rsquo;s call this page 22,492 in the book of things I did not know about &lt;br /&gt;Visual Studio 2005.&lt;/p&gt;
&lt;p&gt;I was reading something the other day, if I can remember or find it I will post up a link, &lt;br /&gt;and was surprised that I had missed this little bit before.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;(I have recently been reading &amp;ldquo;WPF for those who know Windows Forms&amp;rdquo; that can be &lt;br /&gt;found &lt;a href="http://blogs.msdn.com/jfoscoding/articles/765135.aspx"&gt;here&lt;/a&gt;&amp;nbsp; and watching webcasts by William Steele&amp;nbsp;on his&amp;nbsp;&lt;a href="http://www.msdnwebcastportal.com/DesktopDefault.aspx?tabindex=3&amp;amp;tabid=25"&gt;WPF Soup To Nuts&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:#800080;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;series &lt;br /&gt;so it could have could have come from one of those.)&lt;/p&gt;
&lt;p&gt;What was mentioned was having both text and an image on a button.&amp;nbsp; I knew it was &lt;br /&gt;possible, but I didn&amp;rsquo;t know just how easy it was to do.&lt;/p&gt;
&lt;p&gt;By default when you add an image to the button the text of the button is overlays the image.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/01btnimage2005.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;There is a property of a button which helps us set the relation of the text to the &lt;br /&gt;image.&amp;nbsp; This name of this property is TextImageRelation.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/02btnimage2005.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;The TextImageRelation property has five options:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Overlay &lt;/li&gt;
&lt;li&gt;Image over text &lt;/li&gt;
&lt;li&gt;Text over image &lt;/li&gt;
&lt;li&gt;Image before text &lt;/li&gt;
&lt;li&gt;Text before image&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/03btnimage2005.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The options are pretty much self explanatory.&amp;nbsp; Below are screen shots showing &lt;br /&gt;the different positions.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Image over text:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/04btnimage2005.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Text over image:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/05btnimage2005.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Image before text:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/06btnimage2005.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;and lastly&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Text before image:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.neilknobbe.com/blogimages/07btnimage2005.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://cs.vbcity.com/aggbug.aspx?PostID=128" width="1" height="1"&gt;</content><author><name>CanOz</name><uri>http://cs.vbcity.com/members/CanOz/default.aspx</uri></author><category term="Visual Basic.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Basic.NET/default.aspx" /><category term="VB.NET" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/VB.NET/default.aspx" /><category term="Visual Studio" scheme="http://cs.vbcity.com/blogs/canoz/archive/tags/Visual+Studio/default.aspx" /></entry></feed>