<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://windowsclient.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Cristian Ricciolo Civera</title><subtitle type="html">Windows Presentation Foundation, C++ CLI, LINQ, Silverlight and experiments</subtitle><id>http://windowsclient.net/blogs/ricciolocristian/atom.aspx</id><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/default.aspx" /><link rel="self" type="application/atom+xml" href="http://windowsclient.net/blogs/ricciolocristian/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20416.853">Community Server</generator><updated>2008-02-16T13:38:00Z</updated><entry><title>MetadataDiffViewer updated to .NET Framework 4.0, Silverlight 4.0 and Sharepoint 2010</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2010/01/07/metadatadiffviewer-updated-to-net-framework-4-0-silverlight-4-0-and-sharepoint-2010.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2010/01/07/metadatadiffviewer-updated-to-net-framework-4-0-silverlight-4-0-and-sharepoint-2010.aspx</id><published>2010-01-07T12:48:00Z</published><updated>2010-01-07T12:48:00Z</updated><content type="html">&lt;p&gt;A fast post to tell you that I have updated the &lt;a href="http://lab.ricciolo.aspitalia.com/metadatadiffviewer/metadatadiffviewer.html"&gt;MetadataDiffViewer&lt;/a&gt; to latest .NET Framework 4.0 beta2, Silverlight 4.0 beta1 and Sharepoint 2010. These versions are compared to the previous specific version.&lt;/p&gt;
&lt;p&gt;I have also changed the download method: now it&amp;#39;s faster and required less space usage.&lt;/p&gt;
&lt;p&gt;The tool is &lt;a href="http://lab.ricciolo.aspitalia.com/metadatadiffviewer/metadatadiffviewer.html"&gt;here&lt;/a&gt;. Enjoy!&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=299765" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="Silverlight" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Silverlight/default.aspx" /><category term=".NET" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/.NET/default.aspx" /></entry><entry><title>New Silverlight 3.0 book!</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2009/11/06/new-silverlight-3-0-book.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2009/11/06/new-silverlight-3-0-book.aspx</id><published>2009-11-06T11:32:00Z</published><updated>2009-11-06T11:32:00Z</updated><content type="html">&lt;p&gt;In the last months I have spent a lot of time with my&amp;nbsp;&lt;a href="http://www.silverlightitalia.com/"&gt;SilverlightItalia&lt;/a&gt; community friends&amp;nbsp;to write a new book on Silverlight 3.0. The book is in italian language and it&amp;#39;s a guide for developer and designer that use Expression Blend and Visual Studio.&lt;/p&gt;
&lt;p&gt;Thank you to &lt;a href="http://blogs.msdn.com/brada/"&gt;Brad Adams&lt;/a&gt; for the foreword!&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.hoepli.it/hoepli/Libro/BOCHICCHIO-D---CIVERA-C---LEONCINI-A---LEONCINI-M/SILVERLIGHT-30/9788820344122.jpeg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;You can buy it &lt;a href="http://www.hoepli.it/libro/informatica/silverlight/"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=288542" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="Silverlight" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Silverlight/default.aspx" /></entry><entry><title>New codeplex project: DirectShow for Silverlight</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2009/10/19/new-codeplex-project-directshow-for-silverlight.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2009/10/19/new-codeplex-project-directshow-for-silverlight.aspx</id><published>2009-10-19T16:52:00Z</published><updated>2009-10-19T16:52:00Z</updated><content type="html">&lt;p&gt;As you can see in my &lt;a href="http://blogs.windowsclient.net/ricciolocristian/archive/2009/05/31/silverlight-real-time-audio-peak-meter.aspx"&gt;previous post&lt;/a&gt;, I&amp;#39;m working on MediaStreamSouce and audio/video processing. There&amp;#39;s a Windows framework called Direct Show used by Windows Media Player, Windows Media Center and many others applications that is so useful and complete. Its architecture allows to read audio and video streams, decode, process and render them.&lt;/p&gt;
&lt;p&gt;My idea is to develop a similar framework with same architecture but with revisited types and members names. The framework is available on &lt;a href="http://directshow4sl.codeplex.com/"&gt;codeplex&lt;/a&gt;&amp;nbsp;and contains basic filter to read ogg, wav and partially avi files. It also contains an&amp;nbsp;audio peak visualization, a wave writer, an infinite pin filter and audio/video render filter. An ElementCaptureFilter allows to grab an element and produce a video stream.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You can try a demo &lt;/strong&gt;&lt;a href="http://www.cristiancivera.com/directshow4sl/"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you want to write a audio video decoder (mp3, aac, dirac, mp4) or other DSP filters, please contact me. With this framework you can easly&amp;nbsp; create a filter and join it to others.&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=282243" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="Silverlight" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Silverlight/default.aspx" /><category term="DirectShow" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/DirectShow/default.aspx" /></entry><entry><title>Silverlight - Real time audio peak meter</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2009/05/31/silverlight-real-time-audio-peak-meter.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2009/05/31/silverlight-real-time-audio-peak-meter.aspx</id><published>2009-05-31T11:23:57Z</published><updated>2009-05-31T11:23:57Z</updated><content type="html">&lt;p&gt;I have implemented an audio peak meter for &lt;strong&gt;Silverlight&lt;/strong&gt;. It uses two different ways: pre computed FFT or real time FFT.&lt;/p&gt;  &lt;p&gt;The first technique is a console application that process audio file using DirectShow and produce a dat file containing peaks data, 12 frames per second. Then a &lt;strong&gt;DataAudioPeakMeter&lt;/strong&gt; load this data file and it keeps MediaElement and BarVisualization synchronized. That works with any supported media types by Silverlight 2.0/3.0.&lt;/p&gt;  &lt;p&gt;The second technique use a custom MediaStreamSource, called &lt;strong&gt;WavMediaStreamSource&lt;/strong&gt;, that loads external wav file and provides raw samples to the MediaElement. This samples are also processed to flow BarVisualization animation.&lt;/p&gt;  &lt;p&gt;Here is the result:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.windowsclient.net/blogs/ricciolocristian/fft_308DD722.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="fft" border="0" alt="fft" src="http://blogs.windowsclient.net/blogs/ricciolocristian/fft_thumb_7983D31B.png" width="576" height="450" /&gt;&lt;/a&gt;Here you can see a video demonstration of pre computed method.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px auto;padding-left:0px;width:425px;padding-right:0px;display:block;float:none;padding-top:0px;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:f0807345-6d0f-429d-ab62-92ceb131826f" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=ZavzJg4NK0Y" target="_new"&gt;&lt;img src="http://blogs.windowsclient.net/blogs/ricciolocristian/video2b1ced32e141_34A7891A.jpg" style="border-style:none;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Unluckily MediaStreamSource doesn’t allow to get audio raw samples decoded by Silverlight engine, so you can’t apply FFT on MP3/WMA file. You have to decode it using managed code (anyone has a decoder class?).&lt;/p&gt;  &lt;p&gt;I hope in the future MS will give this possibility.&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=184483" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="Controls" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Controls/default.aspx" /><category term="Silverlight" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Silverlight/default.aspx" /></entry><entry><title>Show webcam images into Silverlight</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2009/05/28/show-webcam-images-into-silverlight.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2009/05/28/show-webcam-images-into-silverlight.aspx</id><published>2009-05-28T09:05:00Z</published><updated>2009-05-28T09:05:00Z</updated><content type="html">&lt;p&gt;With current &lt;strong&gt;Silverlight&lt;/strong&gt; release or available beta you can&amp;#39;t view webcam images from local machine so I thought to a trick to do&amp;nbsp;it using a local winform application distributed using &lt;strong&gt;ClickOnce&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=t1u9G8myG9Y&amp;amp;feature=player_embedded"&gt;Here you are the result (YouTube video)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This sample work using two applications:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;a winform application started navigating to the .application file, that runs a &lt;strong&gt;DirectShow&lt;/strong&gt; graph to grab webcam images and send it through a Motion JPEG;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;a silverlight application that uses &lt;strong&gt;socket&lt;/strong&gt; connection to the local winform application to receive each frame from the webcam.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;The winform application also implements policy server to trust socket connection from Silverlight to local application. From Silverlight prospective, it receive each jpeg frame and show it through the &lt;strong&gt;BitmapImage.SetSource&lt;/strong&gt; method giving a fluid animation. It&amp;#39;s a simple game and it allow only to capture and save webcam frames.&lt;/p&gt;
&lt;p&gt;You can download full source code &lt;a href="http://lab.aspitalia.com/Ricciolo/Downloads/SLWebCam.zip"&gt;here&lt;/a&gt;. Enjoy!&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=180360" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="Silverlight" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Silverlight/default.aspx" /></entry><entry><title>MetadataDiffViewer updated to .NET Framework 4.0 beta1</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2009/05/22/metadatadiffviewer-updated-to-net-framework-4-0-beta1.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2009/05/22/metadatadiffviewer-updated-to-net-framework-4-0-beta1.aspx</id><published>2009-05-22T06:00:00Z</published><updated>2009-05-22T06:00:00Z</updated><content type="html">&lt;p&gt;I have updated my &lt;a href="http://lab.ricciolo.aspitalia.com/metadatadiffviewer/metadatadiffviewer.html"&gt;MetadataDiffViewer&lt;/a&gt; to the recent .NET Framework 4.0 beta1 so you can see differences by 3.5 SP1.&lt;/p&gt;
&lt;p&gt;You can note some interesting changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;System.Web.Routing&lt;/strong&gt;&amp;nbsp;and &lt;strong&gt;System.Web.Abstractions&lt;/strong&gt;&amp;nbsp;are empties because their classes were included into System.Web. The attributes TypeForwardedToAttribute and TypeForwaredFromAttribute tell to CLR, compilers and serializer to remap to new location so old builds based on 3.5&amp;nbsp;can work;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;new assemblies &lt;strong&gt;System.Web.DataVisualization&lt;/strong&gt;&amp;nbsp;and &lt;strong&gt;System.Windows.Forms.DataVisualization&lt;/strong&gt; containing new charting controls for ASP.NET and WinForms application;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;some new nice classes into &lt;strong&gt;System.Core&lt;/strong&gt;: lots of Action&amp;lt;T,..Tn&amp;gt; and Func&amp;lt;T,..Tn&amp;gt;, a new ExpressionVisitor to navigate into expression tree, and some new static methods for Expression class allowing to create more complex expressions containing try/catch, switch, loop, goto, ecc;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;new assembly System.ComponentModel.Composition containing &lt;strong&gt;Managed Extensibility Framework&lt;/strong&gt;;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;new namespace &lt;strong&gt;System.Diagnostics.Contracts&lt;/strong&gt; containing the class Contract with usefull methods for compilation and runtime checks;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;new namespace &lt;strong&gt;System.Collections.Concurrent&lt;/strong&gt;&amp;nbsp;with ParallelFx collections: Queue, Stack, Dictionary and Partitioner;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;new classes Tuple&amp;lt;T,..Tn&amp;gt; used by F# but that we can use for fast values storage.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;In sum, there are so many new features to study :-)&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=175093" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author></entry><entry><title>MetadataDiffViewer: never miss a new .NET Framework member</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2009/04/17/metadatadiffviewer-never-miss-a-new-net-framework-member.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2009/04/17/metadatadiffviewer-never-miss-a-new-net-framework-member.aspx</id><published>2009-04-17T11:34:00Z</published><updated>2009-04-17T11:34:00Z</updated><content type="html">&lt;p&gt;A new .NET Framework or Silverlight version is released&amp;#160; and you want to know the differences and what is changed?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lab.ricciolo.aspitalia.com/metadatadiffviewer/metadatadiffviewer.html"&gt;MetadataDiffViewer&lt;/a&gt; is a Silverlight application that allow you to analyze different and future .NET Framework/Silverlight versions and get which assemblies/modules/types/members are changed between one version and another.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.windowsclient.net/blogs/ricciolocristian/metadatadiffviewer_4_34DB551F.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="metadatadiffviewer_4" border="0" alt="metadatadiffviewer_4" src="http://blogs.windowsclient.net/blogs/ricciolocristian/metadatadiffviewer_4_thumb_20E1C289.jpg" width="453" height="393" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The first time you run it, you have to increase the isolated storage quota so the MetadataDiffViewer can download metadata and store it on local machine to increase performance.&lt;/p&gt;  &lt;p&gt;Try it now &lt;a href="http://lab.ricciolo.aspitalia.com/metadatadiffviewer/metadatadiffviewer.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=136541" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="Silverlight" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Silverlight/default.aspx" /></entry><entry><title>Lambda Expression into XAML markup</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2008/11/11/lambda-expression-into-xaml-markup.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2008/11/11/lambda-expression-into-xaml-markup.aspx</id><published>2008-11-11T16:35:00Z</published><updated>2008-11-11T16:35:00Z</updated><content type="html">&lt;p&gt;When I write markup I often need an &lt;strong&gt;IValueConverter&lt;/strong&gt; for a Binding and usually the code implementation is small and easy. So, to resolve this typical need I thought that should be useful include small c# expression into the markup.&lt;/p&gt;
&lt;p&gt;So I developed a MarkupExtension, called &lt;strong&gt;ExpressionExtension&lt;/strong&gt; that evaluate expression during markup analyzes in order to return value to the target property. To parse the expression I used the DynamicLinq sample of SDK 3.5 which contains an useful &lt;strong&gt;DynamicExpression.ParseLambda&lt;/strong&gt; method to obtain a &lt;strong&gt;LambdaExpression&lt;/strong&gt; from a string. Moreover, evaluating the target property, if this is a IValueConverter, I automatically create a class, implementing the interface, that takes the delegate to convert value for a Binding. This code is compiled so is as fast as a normal c# code.&lt;/p&gt;
&lt;p&gt;This is a partial code to understand the functionality:&lt;/p&gt;
&lt;div style="BACKGROUND-COLOR:white;"&gt;
&lt;div class="code"&gt;&lt;font color="#006400"&gt;// Normal expression to evaluate immediately &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;LambdaExpression&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;le&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;DynamicExpression.ParseLambda&amp;lt;ExpressionDelegate&amp;gt;(&lt;/font&gt;&lt;font color="#808080"&gt; &lt;br /&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ParameterExpression[]&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#000000"&gt;Expression.Parameter(&lt;/font&gt;&lt;font color="#0000ff"&gt;typeof&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;font color="#808080"&gt; &amp;quot;target&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#808080"&gt; &lt;br /&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#000000"&gt;},&lt;/font&gt;&lt;font color="#808080"&gt; &lt;br /&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;typeof&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;object&lt;/font&gt;&lt;font color="#000000"&gt;),&lt;/font&gt;&lt;font color="#808080"&gt; &lt;br /&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;.ConvertExpression,&lt;/font&gt;&lt;font color="#808080"&gt; &lt;br /&gt;&amp;nbsp; &lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt; &lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;ExpressionDelegate&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;converter&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;(ExpressionDelegate)le.Compile()&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt; &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;converter(provideValueTarget.TargetProperty)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt; &lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Here how you can use this new MarkupExtension:&lt;/p&gt;
&lt;div style="BACKGROUND-COLOR:white;"&gt;
&lt;div class="code"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TextBox&lt;/font&gt;&lt;font color="#ff0000"&gt; x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;txt&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt; Text&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Testo&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt; &lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TextBlock &lt;br /&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;&amp;nbsp; Text&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{Binding Path=Text,ElementName=txt, &lt;br /&gt;&amp;nbsp; Converter={m:Expression value.ToString().ToUpper(culture)}}&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt; &lt;br /&gt;&lt;br /&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TextBlock&lt;/font&gt;&lt;font color="#ff0000"&gt; Text&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{m:Expression DateTime.Now.ToShortDateString()}&amp;quot;&lt;/font&gt;&lt;font color="#ff0000"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt; &lt;/div&gt;&lt;/div&gt;
&lt;div class="code"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class="code"&gt;&lt;a href="http://blogs.aspitalia.com/img/Ricciolo/WPFExpression.zip" target="_blank"&gt;Here&lt;/a&gt; you can find the sample and source code.&lt;/div&gt;
&lt;div class="code"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class="code"&gt;In XAML 2009 there&amp;#39;s a special syntax that will allows to use expression: Text=&amp;quot;[DateTime.Now.ToShortDateString()]&amp;quot;&lt;/div&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=79970" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="WPF" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/WPF/default.aspx" /></entry><entry><title>StylesExplorer on CodePlex</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2008/11/09/stylesexplorer-on-codeplex.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2008/11/09/stylesexplorer-on-codeplex.aspx</id><published>2008-11-09T15:11:55Z</published><updated>2008-11-09T15:11:55Z</updated><content type="html">&lt;p&gt;Due many requests for &lt;a href="http://blogs.windowsclient.net/ricciolocristian/archive/2008/04/05/styles-explorer-baml-decompiler.aspx" target="_blank"&gt;StylesExplorer&lt;/a&gt; code I just publishes my project on CodePlex:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.codeplex.com/stylesexplorer" href="http://www.codeplex.com/stylesexplorer"&gt;http://www.codeplex.com/stylesexplorer&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It contains both &lt;a href="http://www.codeplex.com/stylesexplorer/Release/ProjectReleases.aspx?ReleaseId=19066" target="_blank"&gt;library&lt;/a&gt; for baml decompilation and the &lt;a href="http://www.codeplex.com/stylesexplorer/Release/ProjectReleases.aspx?ReleaseId=19067" target="_blank"&gt;tool&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;However &lt;a href="http://blogs.windowsclient.net/rob_relyea/" target="_blank"&gt;Rob&lt;/a&gt; at pdc spoke about XAML 2009 and there are many new features such class to load baml/xaml so I thinks in the future to replace my library by System.Xaml.dll and work only on the tool.&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=79951" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="WPF" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/WPF/default.aspx" /></entry><entry><title>(Real) Force theme on WPF</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2008/11/07/real-force-theme-on-wpf.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2008/11/07/real-force-theme-on-wpf.aspx</id><published>2008-11-07T15:01:00Z</published><updated>2008-11-07T15:01:00Z</updated><content type="html">&lt;p&gt;When I develop custom control for WPF that supports theming I need to force the engine to load the right resource instead of my Windows Vista theme.&amp;nbsp; There are some tricks on the web that does is merging the the resources for a specific theme but this works only for default WPF controls.&lt;/p&gt;
&lt;p&gt;Here you are a snippet to force a specific theme. It uses reflection so use it only for development purpose:&lt;/p&gt;
&lt;div style="BACKGROUND-COLOR:white;"&gt;
&lt;div class="code"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;App()&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#006400"&gt;//ForceTheme(&amp;quot;Luna&amp;quot;, &amp;quot;NormalColor&amp;quot;);&amp;nbsp; &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#006400"&gt;//ForceTheme(&amp;quot;Luna&amp;quot;, &amp;quot;Homestead&amp;quot;);&amp;nbsp; &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#006400"&gt;//ForceTheme(&amp;quot;Luna&amp;quot;, &amp;quot;Metallic&amp;quot;);&amp;nbsp; &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#006400"&gt;//ForceTheme(&amp;quot;Aero&amp;quot;, &amp;quot;NormalColor&amp;quot;);&amp;nbsp; &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#006400"&gt;//ForceTheme(&amp;quot;Generic&amp;quot;, &amp;quot;&amp;quot;);&amp;nbsp; &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;/div&gt;
&lt;div class="code"&gt;&lt;font color="#808080"&gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;ForceTheme(&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;themeName,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;themeColor)&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#006400"&gt;// To force a particular style&amp;nbsp; &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#2b91af"&gt;Type&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;t&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#2b91af"&gt;Type&lt;/font&gt;&lt;font color="#000000"&gt;.GetType(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;MS.Win32.UxThemeWrapper, PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#000000"&gt;FieldInfo&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;themeNameField&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;t.GetField(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;_themeName&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;BindingFlags.NonPublic&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;|&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;BindingFlags.Static)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#000000"&gt;themeNameField.SetValue(&lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;themeName)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#000000"&gt;FieldInfo&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;themeColorField&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;t.GetField(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;_themeColor&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;BindingFlags.NonPublic&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;|&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;BindingFlags.Static)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#000000"&gt;themeColorField.SetValue(&lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp;&lt;/font&gt;&lt;font color="#000000"&gt;themeColor)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;nbsp; &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt; &lt;/div&gt;&lt;/div&gt;
&lt;div class="code"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class="code"&gt;Enjoy! :-)&lt;/div&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=79945" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="WPF" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/WPF/default.aspx" /><category term="Controls" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Controls/default.aspx" /></entry><entry><title>Styles Explorer: BAML decompiler</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2008/04/05/styles-explorer-baml-decompiler.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2008/04/05/styles-explorer-baml-decompiler.aspx</id><published>2008-04-04T22:33:00Z</published><updated>2008-04-04T22:33:00Z</updated><content type="html">&lt;p&gt;Since the summer I have studied how &lt;strong&gt;XAML&lt;/strong&gt; markup is &amp;quot;compiled&amp;quot; to produce &lt;strong&gt;BAML&lt;/strong&gt; stream included as resource into the .NET assemblies. So, during free time, I have developed an XmlReader implementation that allow to&amp;nbsp;decompile BAML stream&amp;nbsp;and read it as&amp;nbsp;an XML.&lt;br /&gt;I have also developed a tool called &lt;strong&gt;Styles Explorer&lt;/strong&gt; allowing to open an application or an assembly. For each file you can see the resources and decompile them, or you can explore ResourceDictionary and preview its children.&lt;/p&gt;
&lt;p&gt;Here a video showing its usage:&lt;/p&gt;
&lt;p&gt;&lt;a title="Styles Explorer" href="http://video.msn.com/video.aspx?vid=184a6290-13ec-4aa3-8c37-51e85d430303" target="_new"&gt;&lt;img title="Styles Explorer" style="WIDTH:400px;HEIGHT:300px;" height="300" alt="Styles Explorer" src="http://img3.catalog.video.msn.com/Image.aspx?uuid=184a6290-13ec-4aa3-8c37-51e85d430303&amp;amp;w=400&amp;amp;h=300" width="400" border="0" /&gt;&lt;br /&gt;Styles Explorer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can install and try it through &lt;a class="" href="http://ricciolo.lab.aspitalia.com/StylesExplorer/Ricciolo.StylesExplorer.application"&gt;ClickOnce&lt;/a&gt;&amp;nbsp;(.NET Framework 3.5 required). Hope this is useful to you and&amp;nbsp;I will try to improve and maintain&amp;nbsp;Styles Expolorer, so please send to &lt;a class="" href="mailto:cristian@aspitalia.com"&gt;me&lt;/a&gt;&amp;nbsp;requests and bugs.&lt;/p&gt;
&lt;p&gt;In the future I will explain how BAML is structured.&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=20692" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="WPF" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/WPF/default.aspx" /></entry><entry><title>A complete WPF TreeListView control</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2008/03/22/a-complete-wpf-treelistview-control.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2008/03/22/a-complete-wpf-treelistview-control.aspx</id><published>2008-03-22T12:42:00Z</published><updated>2008-03-22T12:42:00Z</updated><content type="html">&lt;p&gt;Yes, I know, there already is a &lt;strong&gt;TreeListView&lt;/strong&gt; control in the SDK, but it&amp;#39;s simple and it isn&amp;#39;t complete, so I developed a my custom control working on .NET Fx 3.0/3.5. It supports template, binding, scrolling and themes (classic, aero, luna). It&amp;#39;s quite simple to use:&lt;/p&gt;
&lt;div style="BACKGROUND-COLOR:white;"&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;
&lt;p&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;r&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;TreeListView&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; ItemsSource&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;Binding&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; Source&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;={&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;StaticResource&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; data&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;},&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt;XPath&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;/&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;opml&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;/&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;body&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;/&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;outline&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;/&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;outline}&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; ItemTemplate&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;StaticResource&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; dt&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;}&amp;quot;&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;r&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;TreeListView.Columns&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;GridViewColumn&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; Header&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;Title&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; DisplayMemberBinding&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;Binding&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; XPath&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;@&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;title}&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; Width&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;150&amp;quot; /&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;GridViewColumn&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; Header&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;Childs&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; DisplayMemberBinding&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;Binding&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; XPath&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;@&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;count}&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; Width&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;100&amp;quot; /&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;GridViewColumn&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; Header&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;Url&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; DisplayMemberBinding&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;Binding&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; XPath&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;@&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;xmlUrl}&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="1"&gt;&lt;font color="#ff0000" size="1"&gt; Width&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;=&amp;quot;200&amp;quot; /&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;r&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;TreeListView.Columns&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;r&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="1"&gt;&lt;font color="#a31515" size="1"&gt;TreeListView&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="1"&gt;&lt;font color="#0000ff" size="1"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;And below a&amp;nbsp;screenshot of the control in action:&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:575px;HEIGHT:418px;" src="http://blogs.aspitalia.com/img/Ricciolo/TreeListView.gif" width="575" height="418" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The control inherits from &lt;strong&gt;TreeView&lt;/strong&gt; and &lt;strong&gt;TreeViewItem&lt;/strong&gt;&amp;nbsp;classes and uses a custom converter to indent items. The most of work is into the xaml files, built copying markup from original TreeView and ListView styles.&lt;br /&gt;I used this control into my project &lt;a href="http://www.codeplex.com/paperboy/"&gt;PaperBoy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I hope&amp;nbsp;you find&amp;nbsp;useful :-).&amp;nbsp;&lt;a href="http://lab.aspitalia.com/ricciolo/downloads/treelistview.zip?lab=46&amp;amp;lang=eng"&gt;Download&lt;/a&gt; full source control.&lt;font color="#2b91af" size="3"&gt;&lt;font color="#2b91af" size="3"&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=18767" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="WPF" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/WPF/default.aspx" /><category term="Custom element" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Custom+element/default.aspx" /><category term="Controls" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Controls/default.aspx" /></entry><entry><title>WPF AdvancedListBox for Zune effect</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2008/03/17/wpf-advancedlistbox-for-zune-effect.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2008/03/17/wpf-advancedlistbox-for-zune-effect.aspx</id><published>2008-03-17T19:08:00Z</published><updated>2008-03-17T19:08:00Z</updated><content type="html">&lt;p&gt;I like WPF very much and I often prepare some controls for my applications. This time I want to show a simple control extension added to ListBox. Its name is AdvancedListBox that uses custom ListBoxItem and it exposes some properties to know if ListBox is loosing or capturing&amp;nbsp;the selection.&lt;/p&gt;
&lt;p&gt;Using style I have created a sample that simulates Zune navigation effect: a background animation from previous to next selection. Here the result:&lt;/p&gt;
&lt;p&gt;&lt;a title="WPF AdvancedListBox" href="http://video.msn.com/video.aspx?vid=13eb4c7c-abd2-441f-a86c-e3ded1ee22e2" target="_new"&gt;&lt;img title="WPF AdvancedListBox" alt="WPF AdvancedListBox" src="http://img4.catalog.video.msn.com/Image.aspx?uuid=13eb4c7c-abd2-441f-a86c-e3ded1ee22e2&amp;amp;w=500&amp;amp;h=375" border="0" /&gt;&lt;br /&gt;WPF AdvancedListBox&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And &lt;a class="" href="http://lab.ricciolo.aspitalia.com/downloads/Ricciolo.controls.advancedlistbox.zip?lab=52&amp;amp;lang=en"&gt;here&lt;/a&gt; the source.&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=18034" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="WPF" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/WPF/default.aspx" /><category term="Controls" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Controls/default.aspx" /></entry><entry><title>Audio spectrum using WPF and C++ CLI</title><link rel="alternate" type="text/html" href="http://windowsclient.net/blogs/ricciolocristian/archive/2008/02/16/audio-spectrum-using-wpf-and-c-cli.aspx" /><id>http://windowsclient.net/blogs/ricciolocristian/archive/2008/02/16/audio-spectrum-using-wpf-and-c-cli.aspx</id><published>2008-02-16T12:38:00Z</published><updated>2008-02-16T12:38:00Z</updated><content type="html">&lt;p&gt;Hi! this is my first post and I want to begin to tell you about my&amp;nbsp;experiences and experiments regard .NET world.&lt;/p&gt;
&lt;p&gt;There is a feature that lots of applications and sites miss. I&amp;#39;m talking about the audio spectrum, sometime built by fake bars that don&amp;#39;t follow the music. So I developed a mixed assembly using&amp;nbsp;&lt;strong&gt;C++ CLI&lt;/strong&gt; that process audio samples and computes&amp;nbsp;peaks&amp;nbsp;grouping them by frequency range. Through &lt;strong&gt;DirectShow&lt;/strong&gt; I load audio track and I grab 44100&amp;nbsp;samples per second and I transform them with&amp;nbsp;&lt;strong&gt;FFT&lt;/strong&gt; (I found &lt;a class="" href="http://www.relisoft.com/science/physics/sound.html" target="_blank"&gt;this&lt;/a&gt; good guide)&amp;nbsp;. FFT is heavy calculation to repeat many times per second, thus I chosen C++ CLI&amp;nbsp;to reduce interop, limiting it&amp;nbsp;only to the peaks exposed as a property.&lt;/p&gt;
&lt;p&gt;The WPF side contains a custom element named &lt;strong&gt;AudioVisualization&lt;/strong&gt; that 12 times per second loads peaks and shows bars using animations. My&amp;nbsp;sample player contains a simple skin, but obviuosly we can customize bars exploiting WPF capabilities.&lt;/p&gt;
&lt;p&gt;Here a video demo:&lt;/p&gt;
&lt;p&gt;&lt;a title="Reyalp" href="http://video.msn.com/video.aspx?vid=66f292d3-3230-44de-ba6a-53a053513b94" target="_new"&gt;&lt;img title="Reyalp" alt="Reyalp" src="http://img3.catalog.video.msn.com/Image.aspx?uuid=66f292d3-3230-44de-ba6a-53a053513b94&amp;amp;w=500&amp;amp;h=375" border="0" /&gt;&lt;br /&gt;Reyalp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Full source code is available &lt;a class="" title="Source code" href="http://lab.ricciolo.aspitalia.com/Downloads/WaveSpectrum.zip?lang=eng&amp;amp;lab=53" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://windowsclient.net/aggbug.aspx?PostID=14803" width="1" height="1"&gt;</content><author><name>RiccioloCristian</name><uri>http://windowsclient.net/members/RiccioloCristian.aspx</uri></author><category term="WPF" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/WPF/default.aspx" /><category term="Custom element" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/Custom+element/default.aspx" /><category term="C++ CLI" scheme="http://windowsclient.net/blogs/ricciolocristian/archive/tags/C_2B002B00_+CLI/default.aspx" /></entry></feed>
