<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dotnet thoughts &#187; WPF</title>
	<atom:link href="http://www.dotnetthoughts.net/tag/wpf/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dotnetthoughts.net</link>
	<description>a dotnet developer&#039;s technical blog</description>
	<lastBuildDate>Wed, 08 Feb 2012 03:18:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Developing a simple RSS Reader in C#.Net</title>
		<link>http://www.dotnetthoughts.net/2010/12/17/developing-a-simple-rss-reader-in-c-net/</link>
		<comments>http://www.dotnetthoughts.net/2010/12/17/developing-a-simple-rss-reader-in-c-net/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 03:46:43 +0000</pubDate>
		<dc:creator>Anuraj P</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net 3.0 / 3.5]]></category>
		<category><![CDATA[.Net 4.0]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[C#.Net]]></category>
		<category><![CDATA[RSS Reader]]></category>

		<guid isPermaLink="false">http://www.dotnetthoughts.net/?p=1286</guid>
		<description><![CDATA[Yesterday one of my ex-colleague asked me how RSS feeds works and how to parse it in .Net Framework. I think helped him to get an idea about how RSS works. For the second one I started searching and I &#8230; <a href="http://www.dotnetthoughts.net/2010/12/17/developing-a-simple-rss-reader-in-c-net/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Yesterday one of my ex-colleague asked me how RSS feeds works and how to parse it in .Net Framework. I think helped him to get an idea about how RSS works. For the second one I started searching and I found the one way using XML document classes. Then I come to know the inbuilt classes for syndication in .Net Framework, which comes under the System.ServiceModel.Syndication namespace.(If you are using .Net 3.5, you need to add reference of System.ServiceModel.Web.dll to get the namespace, and in .Net 4.0 it is under System.ServiceModel.dll)</p>
<p style="text-align: justify;">Here is a sample implementation, which displaying RSS feeds in a WPF application.</p>
<pre class="brush: csharp; title: ; notranslate">
private void cmdRead_Click(object sender, RoutedEventArgs e)
{
    WebClient client = new WebClient();
    client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
    client.DownloadStringAsync(new Uri(this.txtUrl.Text));
}

private void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    XmlReader reader = XmlReader.Create(new StringReader(e.Result));
    SyndicationFeed feed = SyndicationFeed.Load(reader);
    this.lstBox.ItemsSource = feed.Items;
}

private void linkUrl_Click(object sender, RoutedEventArgs e)
{
    string url = (e.Source as Hyperlink).NavigateUri.AbsoluteUri;
    Process.Start(url);
}
</pre>
<p>And here is the WPF &#8211; XAML </p>
<pre class="brush: xml; title: ; notranslate">
&lt;Window x:Class=&quot;RssReader.MainWindow&quot;
        xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
        xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
        Title=&quot;MainWindow&quot; Height=&quot;350&quot; Width=&quot;525&quot;&gt;
    &lt;Grid&gt;
        &lt;Grid.RowDefinitions&gt;
            &lt;RowDefinition Height=&quot;Auto&quot; /&gt;
            &lt;RowDefinition Height=&quot;*&quot; /&gt;
            &lt;RowDefinition Height=&quot;Auto&quot; /&gt;
        &lt;/Grid.RowDefinitions&gt;
        &lt;Grid Grid.Row=&quot;0&quot;&gt;
            &lt;Grid.ColumnDefinitions&gt;
                &lt;ColumnDefinition Width=&quot;Auto&quot; /&gt;
                &lt;ColumnDefinition Width=&quot;*&quot; /&gt;
                &lt;ColumnDefinition Width=&quot;Auto&quot; /&gt;
            &lt;/Grid.ColumnDefinitions&gt;
            &lt;TextBlock Grid.Column=&quot;0&quot;&gt;URL&lt;/TextBlock&gt;
            &lt;TextBox Name=&quot;txtUrl&quot; Grid.Column=&quot;1&quot; /&gt;
            &lt;Button Content=&quot;Read&quot; Name=&quot;cmdRead&quot; Click=&quot;cmdRead_Click&quot; Grid.Column=&quot;2&quot; /&gt;
        &lt;/Grid&gt;
        &lt;ListBox Name=&quot;lstBox&quot; Grid.Row=&quot;1&quot;&gt;
            &lt;ListBox.ItemTemplate&gt;
                &lt;DataTemplate&gt;
                    &lt;StackPanel&gt;
                        &lt;TextBlock Text=&quot;{Binding Path=Title.Text}&quot; /&gt;
                        &lt;TextBlock TextAlignment=&quot;Justify&quot; Text=&quot;{Binding Path=Summary.Text}&quot; /&gt;

                        &lt;TextBlock&gt;
                            &lt;Hyperlink Name=&quot;linkUrl&quot; Click=&quot;linkUrl_Click&quot; NavigateUri=&quot;{Binding Path=Id}&quot;&gt;
                                &lt;Label Content=&quot;{Binding Path=Title.Text}&quot; &gt;&lt;/Label&gt;
                            &lt;/Hyperlink&gt;
                        &lt;/TextBlock&gt;
                    &lt;/StackPanel&gt;
                &lt;/DataTemplate&gt;
            &lt;/ListBox.ItemTemplate&gt;
        &lt;/ListBox&gt;
        &lt;StatusBar Grid.Row=&quot;2&quot;&gt;
            &lt;StatusBarItem Content=&quot;Welcome to RSS Reader&quot; /&gt;
        &lt;/StatusBar&gt;
    &lt;/Grid&gt;
&lt;/Window&gt;
</pre>
<p>This is a basic implementation, you can add more features like multiple urls, settings etc. You can developing a RSS client in silverlight with the same code, but the problem with silverlight is we require a crossdomainpolicy.xml file in the server. If the file is not found it will throw security exception. </p>
<p>Happy Programming.</p>
<div class="betterrelated"><p><strong>Related content:</strong></p>
<ol><li> <a href="http://www.dotnetthoughts.net/2008/04/22/hello-world-application-in-wpf/" title="Permanent link to Hello World Application in WPF">Hello World Application in WPF</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2008/12/08/gridsplitter-control-in-wpf/" title="Permanent link to Gridsplitter control in WPF">Gridsplitter control in WPF</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2008/06/23/menu-icons-in-wpf/" title="Permanent link to Menu Icons in WPF">Menu Icons in WPF</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2011/11/18/how-to-create-a-rss-feed-using-asp-net/" title="Permanent link to How to create a RSS feed using ASP.Net">How to create a RSS feed using ASP.Net</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2009/11/02/wpf-interoperability-with-windows-forms/" title="Permanent link to WPF interoperability with Windows Forms">WPF interoperability with Windows Forms</a>  </li>
</ol></div>]]></content:encoded>
			<wfw:commentRss>http://www.dotnetthoughts.net/2010/12/17/developing-a-simple-rss-reader-in-c-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Customize SpellCheck in WPF textbox</title>
		<link>http://www.dotnetthoughts.net/2010/06/22/customize-spellcheck-in-wpf-textbox/</link>
		<comments>http://www.dotnetthoughts.net/2010/06/22/customize-spellcheck-in-wpf-textbox/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 08:43:24 +0000</pubDate>
		<dc:creator>Anuraj P</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net 3.0 / 3.5]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C#.Net]]></category>
		<category><![CDATA[SpellCheck]]></category>

		<guid isPermaLink="false">http://www.dotnetthoughts.net/?p=936</guid>
		<description><![CDATA[While working on a personal project (fleetIt). I worked on Textbox spell check option. I enabled it, it was working fine, until I added a context menu to to the textbox, for custom commands of my application. It was displaying &#8230; <a href="http://www.dotnetthoughts.net/2010/06/22/customize-spellcheck-in-wpf-textbox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While working on a personal project (fleetIt). I worked on Textbox spell check option. I enabled it, it was working fine, until I added a context menu to to the textbox, for custom commands of my application. It was displaying the spelling errors but the suggestions and correction options was not available. Then I tried to customize the context menu such a way that it can display both my custom options as well as the system default spell check options. Here is a simple implementation, which helps to customize the context menu and display the spell check suggestions options.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;Window x:Class=&quot;dotnetthoughts.net.MainWindow&quot;
xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
        xmlns:sys=&quot;clr-namespace:System;assembly=System&quot;
Title=&quot;WPF SpellCheck Demo&quot; Height=&quot;350&quot; Width=&quot;525&quot; Loaded=&quot;Window_Loaded&quot;&gt;
&lt;DockPanel&gt;
&lt;TextBox Name=&quot;txtEdit&quot; SpellCheck.IsEnabled=&quot;True&quot;
                AcceptsReturn=&quot;True&quot;
ContextMenuOpening=&quot;txtEdit_ContextMenuOpening&quot;
                VerticalScrollBarVisibility=&quot;Visible&quot;&gt;
&lt;TextBox.ContextMenu&gt;
&lt;ContextMenu Name=&quot;ctxMenu&quot; /&gt;
&lt;/TextBox.ContextMenu&gt;
&lt;/TextBox&gt;
&lt;/DockPanel&gt;
&lt;/Window&gt;
</pre>
<p>And here is the code behind</p>
<pre class="brush: csharp; title: ; notranslate">
namespace dotnetthoughts.net
{
    using System;
    using System.IO;
using System.Linq;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;

public partial class MainWindow : Window
    {
public MainWindow()
        {
InitializeComponent();
        }

private void txtEdit_ContextMenuOpening(object sender, ContextMenuEventArgs e)
        {
            int index = 0;
this.txtEdit.ContextMenu.Items.Clear(); //Clearing the existing items
            //Getting the spellcheck suggestions.
SpellingError spellingError = this.txtEdit.GetSpellingError(this.txtEdit.CaretIndex);
if (spellingError != null &amp;&amp; spellingError.Suggestions.Count() &gt;= 1)
            {
                //Creating the suggestions menu items.
foreach (string suggestion in spellingError.Suggestions)
                {
MenuItem menuItem = new MenuItem();
                    menuItem.Header = suggestion;
menuItem.FontWeight = FontWeights.Bold;
menuItem.Command = EditingCommands.CorrectSpellingError;
                    menuItem.CommandParameter = suggestion;
menuItem.CommandTarget = this.txtEdit;
this.txtEdit.ContextMenu.Items.Insert(index, menuItem);
                    index++;
                }
Separator seperator = new Separator();
this.txtEdit.ContextMenu.Items.Insert(index, seperator);
                index++;
//Adding the IgnoreAll menu item
MenuItem IgnoreAllMenuItem = new MenuItem();
                IgnoreAllMenuItem.Header = &quot;Ignore All&quot;;
IgnoreAllMenuItem.Command = EditingCommands.IgnoreSpellingError;
IgnoreAllMenuItem.CommandTarget = this.txtEdit;
                this.txtEdit.ContextMenu.Items.Insert(index, IgnoreAllMenuItem);
                index++;
            }
            else
            {
//No Suggestions found, add a disabled NoSuggestions menuitem.
                MenuItem menuItem = new MenuItem();
menuItem.Header = &quot;No Suggestions&quot;;
                menuItem.IsEnabled = false;
this.txtEdit.ContextMenu.Items.Insert(index, menuItem);
                index++;
            }
//.Net 4.0 Supports CustomDictionaries, Option for Adding to dictionary.
int selectionStart = this.txtEdit.GetSpellingErrorStart(this.txtEdit.CaretIndex);
            if (selectionStart &gt;= 0)
            {
                Separator seperator1 = new Separator();
this.txtEdit.ContextMenu.Items.Insert(index, seperator1);
                index++;
MenuItem AddToDictionary = new MenuItem();
                AddToDictionary.Header = &quot;Add to Dictionary&quot;;
                //Getting the word to add
this.txtEdit.SelectionStart = selectionStart;
this.txtEdit.SelectionLength = this.txtEdit.GetSpellingErrorLength(this.txtEdit.CaretIndex);
                //Ignoring the added word.
AddToDictionary.Command = EditingCommands.IgnoreSpellingError;
AddToDictionary.CommandTarget = this.txtEdit;
AddToDictionary.Click += (object o, RoutedEventArgs rea) =&gt;
                {
this.AddToDictionary(this.txtEdit.SelectedText);
                };
this.txtEdit.ContextMenu.Items.Insert(index, AddToDictionary);
                index++;
            }

//Common Edit MenuItems.
            Separator seperator2 = new Separator();
this.txtEdit.ContextMenu.Items.Insert(index, seperator2);
            index++;
            //Cut
MenuItem cutMenuItem = new MenuItem();
cutMenuItem.Command = ApplicationCommands.Cut;
this.txtEdit.ContextMenu.Items.Insert(index, cutMenuItem);
            index++;
            //Copy
MenuItem copyMenuItem = new MenuItem();
copyMenuItem.Command = ApplicationCommands.Copy;
this.txtEdit.ContextMenu.Items.Insert(index, copyMenuItem);
            index++;
            //Paste
MenuItem pasteMenuItem = new MenuItem();
pasteMenuItem.Command = ApplicationCommands.Paste;
this.txtEdit.ContextMenu.Items.Insert(index, pasteMenuItem);
            index++;
            Separator seperator3 = new Separator();
this.txtEdit.ContextMenu.Items.Insert(index, seperator3);
            index++;
            //Delete
MenuItem deleteMenuItem = new MenuItem();
deleteMenuItem.Command = ApplicationCommands.Delete;
            this.txtEdit.ContextMenu.Items.Insert(index, deleteMenuItem);
            index++;
            Separator seperator4 = new Separator();
this.txtEdit.ContextMenu.Items.Insert(index, seperator4);
            index++;
            //Select All
MenuItem selectAllMenuItem = new MenuItem();
selectAllMenuItem.Command = ApplicationCommands.SelectAll;
            this.txtEdit.ContextMenu.Items.Insert(index, selectAllMenuItem);
            index++;
        }
        //Method to Add text to Dictionary
private void AddToDictionary(string entry)
        {
using (StreamWriter streamWriter = new StreamWriter(@&quot;D:\WPF\MyCustomDictionary.lex&quot;, true))
            {
streamWriter.WriteLine(entry);
            }
        }

private void Window_Loaded(object sender, RoutedEventArgs e)
        {
//Assigning custom Dictionary to TextBox
this.txtEdit.SpellCheck.CustomDictionaries.Add(new Uri(@&quot;D:\WPF\MyCustomDictionary.lex&quot;));
        }
    }
}
</pre>
<p>The .Net Framework 4.0 supports CustomDictionaries, which helps to create your own Dictionary.</p>
<pre class="brush: csharp; title: ; notranslate">
//.Net 4.0 Supports CustomDictionaries, Option for Adding to dictionary.
int selectionStart = this.txtEdit.GetSpellingErrorStart(this.txtEdit.CaretIndex);
if (selectionStart &gt;= 0)
{
    Separator seperator1 = new Separator();
this.txtEdit.ContextMenu.Items.Insert(index, seperator1);
    index++;
MenuItem AddToDictionary = new MenuItem();
    AddToDictionary.Header = &quot;Add to Dictionary&quot;;
    //Getting the word to add
this.txtEdit.SelectionStart = selectionStart;
this.txtEdit.SelectionLength = this.txtEdit.GetSpellingErrorLength(this.txtEdit.CaretIndex);
    //Ignoring the added word.
AddToDictionary.Command = EditingCommands.IgnoreSpellingError;
AddToDictionary.CommandTarget = this.txtEdit;
AddToDictionary.Click += (object o, RoutedEventArgs rea) =&gt;
    {
this.AddToDictionary(this.txtEdit.SelectedText);
    };
this.txtEdit.ContextMenu.Items.Insert(index, AddToDictionary);
    index++;
}
</pre>
<p>Here is the screenshot of Demo Application.</p>
<div id="attachment_938" class="wp-caption aligncenter" style="width: 502px"><a href="http://www.dotnetthoughts.net/wp-content/uploads/2010/06/SpellCheck.png"><img class="size-full wp-image-938" title="WPF Spell Check Demo - Screenshot" src="http://www.dotnetthoughts.net/wp-content/uploads/2010/06/SpellCheck.png" alt="WPF Spell Check Demo - Screenshot" width="492" height="287" /></a><p class="wp-caption-text">WPF Spell Check Demo - Screenshot</p></div>
<div class="betterrelated"><p><strong>Related content:</strong></p>
<ol><li> <a href="http://www.dotnetthoughts.net/2008/06/24/context-menus-in-wpf/" title="Permanent link to Context menus in WPF">Context menus in WPF</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2008/06/23/shortcuts-keys-in-wpf-menu/" title="Permanent link to Shortcuts keys in WPF Menu">Shortcuts keys in WPF Menu</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2008/06/23/menu-icons-in-wpf/" title="Permanent link to Menu Icons in WPF">Menu Icons in WPF</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2008/04/22/hello-world-application-in-wpf/" title="Permanent link to Hello World Application in WPF">Hello World Application in WPF</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2007/04/17/font-enumeration-in-vbnet/" title="Permanent link to Font Enumeration in VB.Net">Font Enumeration in VB.Net</a>  </li>
</ol></div>]]></content:encoded>
			<wfw:commentRss>http://www.dotnetthoughts.net/2010/06/22/customize-spellcheck-in-wpf-textbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPF interoperability with Windows Forms</title>
		<link>http://www.dotnetthoughts.net/2009/11/02/wpf-interoperability-with-windows-forms/</link>
		<comments>http://www.dotnetthoughts.net/2009/11/02/wpf-interoperability-with-windows-forms/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 16:33:51 +0000</pubDate>
		<dc:creator>Anuraj P</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[.Net 3.0 / 3.5]]></category>
		<category><![CDATA[Windows Forms]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[C#.Net]]></category>

		<guid isPermaLink="false">http://www.dotnetthoughts.net/?p=604</guid>
		<description><![CDATA[In October 24th 2009, I got a chance to attend MS Community Techdays at Trivandrum. One of the session was WPF interoperability with Windows Forms. By using this we can use WPF controls in Classic Windows based applications. For this &#8230; <a href="http://www.dotnetthoughts.net/2009/11/02/wpf-interoperability-with-windows-forms/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In October 24th 2009, I got a chance to attend MS Community Techdays at Trivandrum. One of the session was WPF interoperability with Windows Forms. By using this we can use WPF controls in Classic Windows based applications. For this you require a special control called &#8220;<strong>ElementHost</strong>&#8220;, if you developed any Windows based application in VS 2008, this control will be available under WPF interoperability tab. If you add this control to a Windows Form, Visual Studio will automatically updates the References list. It will add few more references like PresentationCore, PresentationFrameWork, UIAutomationProvider, WindowsBase, WindowsFormsIntegration. Then you can add a WPF User Control to a Windows Form.</p>
<ol>
<li> Create a Windows Application Project.</li>
<li>Right Click on the Project Node in the solution explorer, select Add New Item, and Select User Control(WPF) from Add New Item Dialog.</li>
<li>In the User Contol I wrote some code to change the Color on MouseMove and I wrote the click event in the Codebehind.</li>
<p>XAML Code</p>
<pre class="brush: xml; title: ; notranslate">
&lt;Grid&gt;
    &lt;Grid.Resources&gt;
        &lt;Style TargetType=&quot;Button&quot; x:Key=&quot;CustomButton&quot;&gt;
            &lt;Setter Property=&quot;FontSize&quot; Value=&quot;15&quot; /&gt;
            &lt;Style.Triggers&gt;
                &lt;Trigger Property=&quot;IsMouseOver&quot; Value=&quot;True&quot;&gt;
                    &lt;Setter Property=&quot;FontSize&quot; Value=&quot;20&quot; /&gt;
                &lt;/Trigger&gt;
            &lt;/Style.Triggers&gt;
        &lt;/Style&gt;
    &lt;/Grid.Resources&gt;
    &lt;Button Style=&quot;{StaticResource CustomButton}&quot;
            Content=&quot;Hello World&quot;
            Click=&quot;Button_Click&quot;&gt;
    &lt;/Button&gt;
&lt;/Grid&gt;
</pre>
<p>Code behind – C#</p>
<pre class="brush: csharp; title: ; notranslate">
private void Button_Click(object sender, RoutedEventArgs e)
{
	MessageBox.Show(&quot;WPF UserControl Event&quot;);
}
</pre>
<li>Build the Project.</li>
<li>Drag and Drop, ElementHost control from WPF interoperability tab.</li>
<li>You can Set the host the WPF usercontrol either by selecting Select Host Content from Smart Menu, or by Setting the Child Property in the Property List. (The control will be populated in the List only if you build the application, after you added the control.)</li>
<li>You can also do it in runtime by setting Child Property of the Element Host control.</li>
<pre class="brush: csharp; title: ; notranslate">
private void Form1_Load(object sender, EventArgs e)
{
        SampleWPFCtrl ctrl1 = new SampleWPFCtrl();
            this.elementHost1.Child = ctrl1;
}
</pre>
<div id="attachment_610" class="wp-caption alignnone" style="width: 311px"><img src="http://www.dotnetthoughts.net/wp-content/uploads/2009/11/wpf_screenshot.png" alt="WPF Usercontol Control in Windows Form" title="WPF Usercontol Control in Windows Form" width="301" height="301" class="size-full wp-image-610" /><p class="wp-caption-text">WPF Usercontol Control in Windows Form</p></div>
<p>Happy Coding <img src='http://www.dotnetthoughts.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="betterrelated"><p><strong>Related content:</strong></p>
<ol><li> <a href="http://www.dotnetthoughts.net/2008/06/23/menu-icons-in-wpf/" title="Permanent link to Menu Icons in WPF">Menu Icons in WPF</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2010/02/05/system_invalidoperationexception_cross_thread_operation_not_valid/" title="Permanent link to System.InvalidOperationException – Cross-thread operation not valid">System.InvalidOperationException – Cross-thread operation not valid</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2009/11/08/implementing-close-button-in-tab-pages/" title="Permanent link to Implementing Close button in Tab Pages">Implementing Close button in Tab Pages</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2008/12/08/gridsplitter-control-in-wpf/" title="Permanent link to Gridsplitter control in WPF">Gridsplitter control in WPF</a>  </li>
<li> <a href="http://www.dotnetthoughts.net/2010/12/17/developing-a-simple-rss-reader-in-c-net/" title="Permanent link to Developing a simple RSS Reader in C#.Net">Developing a simple RSS Reader in C#.Net</a>  </li>
</ol></div>]]></content:encoded>
			<wfw:commentRss>http://www.dotnetthoughts.net/2009/11/02/wpf-interoperability-with-windows-forms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

