<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>digitalnetbizz's WebLog : XAML</title><link>http://blogs.msdn.com/digitalnetbizz/archive/tags/XAML/default.aspx</link><description>Tags: XAML</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Grid - the new panel...</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2004/05/08/grid-the-new-panel.aspx</link><pubDate>Sat, 08 May 2004 09:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:128377</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/128377.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=128377</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Georgia size=2&gt;&lt;EM&gt;There's a new panel class added in Avalon not too long ago. I've been using Grid for my last coding milestone [which is why&lt;BR&gt;I'm not writing for so long]. Don't mistake it for GridPanel which has been around since I started working with Avalon. Grid is a new panel that can&lt;BR&gt;do what a GridPanel can do. In addition it has a few advantages, here's some of them:&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;&lt;EM&gt;1. Number of cell != number of element&lt;BR&gt;&amp;nbsp;&amp;nbsp; In GridPanel, you need to add child element to each cell. For eg, if you have Columns=2 and you want 3 rows, you need to add 6 UIElements to it. In Grid, you can have 0-N of element(s) to map to the Grid. For example, if you&lt;BR&gt;&amp;nbsp;&amp;nbsp; have 3 rows and 2 columns, you can have no child or 20 UIElements. Each child can set position into [x,y] cell.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;&lt;EM&gt;2. Grid can act like a mini Canvas.&lt;BR&gt;&amp;nbsp;&amp;nbsp; Within a Grid, you can SetTop, SetBottom, SetLeft, SetRight to child element. You can set a Text element in cell 2,2 by SetRow(element, 1); SetColumn(element, 1) and then do Struts-Spring effect on the element.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;&lt;EM&gt;3. Each cell can host 1-N element.&lt;BR&gt;&amp;nbsp;&amp;nbsp; In GridPanel, each cell can have 1 element only. In Grid, you can set multiple element into the same cell and it will all overlay with each other.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;&lt;EM&gt;4. Grid has Star Sizing.&lt;BR&gt;&amp;nbsp;&amp;nbsp; I'm not 100% sure if GridPanel has Star sizing but Grid has Star sizing for sure. Here's how Star works, if you have 3 columms, 1st column *, 2nd column 100px and 3rd column 2*. Now let's say the available width is 500px. Here's how I think it will distribute size - 1st column = 133px, 2nd column = 100px and 3rd columns = 267px.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;&lt;EM&gt;Here's a sample of Grid markup:&lt;BR&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;FONT face=Georgia size=2&gt;&lt;EM&gt;&amp;lt;Grid&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;RowDefinition/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;RowDefinition/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;RowDefinition/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;ColumnDefinition/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;ColumnDefinition/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;lt;Text Grid.Row="1" Grid.Column="1"/&amp;gt;&lt;BR&gt;&amp;lt;/Grid&amp;gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia size=2&gt;&lt;EM&gt;Grid is definitely valuable to me - I'm pretty sure I'm missing a few more benefits of Grid. I'll add in when I recall. One thing I found Grid really useful is when I mixed Shapes like Polygon as background and overlay it with other element like Text. Those shapes are serving as decorator for me and when window resize, everything resize/move correctly - thanks to Grid.&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=128377" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/XAML/default.aspx">XAML</category></item><item><title>XAML using CLR object as property ...</title><link>http://blogs.msdn.com/digitalnetbizz/archive/2004/02/03/xaml-using-clr-object-as-property.aspx</link><pubDate>Wed, 04 Feb 2004 07:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:67211</guid><dc:creator>digitalnetbizz</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/digitalnetbizz/comments/67211.aspx</comments><wfw:commentRss>http://blogs.msdn.com/digitalnetbizz/commentrss.aspx?PostID=67211</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Georgia color=#000000 size=2&gt;Just today I discovered a feature of XAML - ability to use custom CLR object as property to&amp;nbsp;my Avalon control. All you need in the XAML is to map your assembly into a namespace in XAML. This is kinda like XML serialization in CLR. Here's an example of the usage in standard XAML element[from &lt;A href="http://longhorn.msdn.microsoft.com/"&gt;http://longhorn.msdn.microsoft.com&lt;/A&gt;] - &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;&amp;nbsp;&amp;lt;&lt;STRONG&gt;Rectangle&lt;/STRONG&gt; RectangleLeft="10" RectangleTop="10" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RectangleWidth="300" RectangleHeight="200"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Rectangle.Fill&amp;gt; &lt;FONT color=#008000&gt;&lt;EM&gt;&amp;lt;!--&amp;nbsp;a property that takes in an object --&amp;gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;STRONG&gt;LinearGradientBrush&lt;/STRONG&gt;&amp;gt; &lt;EM&gt;&lt;FONT color=#008000&gt;&amp;lt;!-- XAML will create this object --&amp;gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;LinearGradientBrush.GradientStops&amp;gt; &lt;EM&gt;&lt;FONT color=#008000&gt;&amp;lt;!-- another property --&amp;gt;&lt;/FONT&gt;&lt;/EM&gt;&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;lt;GradientStopCollection&amp;gt;&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;lt;GradientStop Color="red" Offset="0"/&amp;gt;&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;lt;GradientStop Color="yellow" Offset="1" /&amp;gt;&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;lt;GradientStop Color="blue" Offset="0.5"/&amp;gt;&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;lt;GradientStop Color="white" Offset="0.2"/&amp;gt;&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;lt;/GradientStopCollection&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/LinearGradientBrush.GradientStops&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;STRONG&gt;LinearGradientBrush&lt;/STRONG&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Rectangle.Fill&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Rectangle&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;&lt;BR&gt;&lt;FONT face=Georgia&gt;The same technique is used in Avalon Animation markup as well. Finally, you can write your own Avalon&amp;nbsp;control that take in CLR object as your property with XAML doing the parsing and object creation for you. This can be very useful.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New" color=#000080 size=2&gt;
&lt;P&gt;&lt;FONT face=Tahoma color=#000000 size=1&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=67211" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/digitalnetbizz/archive/tags/XAML/default.aspx">XAML</category></item></channel></rss>