<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>HTML Renderer</title><link>http://htmlrenderer.codeplex.com/Project/ProjectRss.aspx</link><description>Html Renderer is a 100&amp;#37; managed code library that draws html. It supports CSS Level 2 and comes with three useful controls&amp;#58; HtmlPanel, HtmlLabel and HtmlTooltip</description><item><title>Patch Uploaded: #4760</title><link>http://htmlrenderer.codeplex.com/SourceControl/PatchList.aspx</link><description>
&lt;p&gt;&lt;a href='http://www.codeplex.com/site/users/view/kkenneth'&gt;kkenneth&lt;/a&gt; has uploaded a patch.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;A slightly cleaner way to deal with link clicks that can be handled by user code.&lt;br /&gt;This is more or less the same as patch 3732.&lt;/p&gt;</description><author>kkenneth</author><pubDate>Tue, 29 Dec 2009 09:35:41 GMT</pubDate><guid isPermaLink="false">Patch Uploaded: #4760 20091229093541A</guid></item><item><title>Created Issue: Enhancement proposals [3580]</title><link>http://htmlrenderer.codeplex.com/WorkItem/View.aspx?WorkItemId=3580</link><description>I have used the HTML panel for a little test.&lt;br /&gt;I have already submitted code that supports classnames a little better.&lt;br /&gt;&lt;br /&gt;I propose that the DOM elements are exposed, so the user can create html nodes with html fragments, like&lt;br /&gt;new CssBox&amp;#40;&amp;#34;&amp;#60;div class&amp;#61;&amp;#92;&amp;#34;xx&amp;#92;&amp;#34;&amp;#62;sample&amp;#60;&amp;#47;div&amp;#62;&amp;#34;&amp;#41;&lt;br /&gt;&lt;br /&gt;And then attaching the new node to the existing tree.&lt;br /&gt;&lt;br /&gt;When doing this, you will notice that the current method of pusing inherited values onto child elements,&lt;br /&gt;wont&amp;#39;t work, because you attach the node after the style has been applied.&lt;br /&gt;&lt;br /&gt;Instead, the attributes should be nullable, and default null. Whenever encountering a null value,&lt;br /&gt;the parents value should be used instead. Using this approach, you can freely move items in the tree, and they will&lt;br /&gt;render as expected.&lt;br /&gt;&lt;br /&gt;I can do some of the work, if you like.&lt;br /&gt;</description><author>kkenneth</author><pubDate>Wed, 16 Dec 2009 18:23:36 GMT</pubDate><guid isPermaLink="false">Created Issue: Enhancement proposals [3580] 20091216062336P</guid></item><item><title>Patch Uploaded: #4669</title><link>http://htmlrenderer.codeplex.com/SourceControl/PatchList.aspx</link><description>
&lt;p&gt;&lt;a href='http://www.codeplex.com/site/users/view/kkenneth'&gt;kkenneth&lt;/a&gt; has uploaded a patch.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;This patch fixes the following problems&amp;#58;&lt;br /&gt;1&amp;#41; Support for file and http&amp;#58;&amp;#47;&amp;#47; style CSS, and images&lt;br /&gt;2&amp;#41; Support for multiple declarations in CSS, eg. .class &amp;#123;prop&amp;#58; 1&amp;#59; prop&amp;#58; 2&amp;#125;&lt;br /&gt;3&amp;#41; Support for multiple classnames, and inheritance of classnames&lt;br /&gt;&lt;br /&gt;Let me know if you want me to explain the changes further.&lt;/p&gt;</description><author>kkenneth</author><pubDate>Wed, 16 Dec 2009 10:45:02 GMT</pubDate><guid isPermaLink="false">Patch Uploaded: #4669 20091216104502A</guid></item><item><title>New Post: HTMLLabel transparent background</title><link>http://htmlrenderer.codeplex.com/Thread/View.aspx?ThreadId=78270</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;In the description on the main page is says that the HTML Label object can have a background = transparent.&amp;nbsp; I have tried to set the background to transparent and it says it is not a valid parameter.&lt;/p&gt;
&lt;p&gt;Anyone run into this problem or even better, know how to get around it?&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>ikky</author><pubDate>Tue, 15 Dec 2009 22:59:04 GMT</pubDate><guid isPermaLink="false">New Post: HTMLLabel transparent background 20091215105904P</guid></item><item><title>New Post: 1 px difference on render</title><link>http://htmlrenderer.codeplex.com/Thread/View.aspx?ThreadId=74802</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;hi,&lt;/p&gt;
&lt;p&gt;when using:&lt;/p&gt;
&lt;p&gt;System.Drawing.Html.HtmlRenderer.Render(&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; g,&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;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;$&amp;lt;font style=\&amp;quot;font:24px Verdana; color:red;\&amp;quot;&amp;gt;99,457&amp;lt;/font&amp;gt;.55&amp;lt;/b&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;,&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; new RectangleF(new PointF(0.0F, 0.0F),new SizeF(500.0F,500.0F)), &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; false);&lt;/p&gt;
&lt;p&gt;the image generated has the following problem: the larger text part's baseline (99,457) is placed 1 or 2 pixels above the smaller text baseline.&lt;/p&gt;
&lt;p&gt;i myself tried to figure out a way to equalize the baselines for all sizes, with no success.&lt;/p&gt;
&lt;p&gt;i've rounded the resulting size up and down, tried to extract some consistent logic for adding or subtracting pixels - no success.&amp;nbsp; do u have any idea of how to solve that?&lt;/p&gt;
&lt;p&gt;the 1 px mismatch drives me crazy.&lt;/p&gt;
&lt;p&gt;i thought of working with the web-browser control, grabbing the non-transparent region. the baseline problem wont happen there, but then i remembered that there will be no text antialiasing there.&lt;/p&gt;
&lt;p&gt;this is where i am out of ideas.&lt;/p&gt;
&lt;p&gt;this is the fn, which causes the iritating baseline diff:&lt;/p&gt;
&lt;p&gt;private static SizeF Get_concatSize(String s, Font f, StringFormat sformat, Graphics g)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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; SizeF size = new SizeF();&lt;br&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; if (String.IsNullOrEmpty(s)) return size;&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;&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; CharacterRange[] characterRanges = { &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; new CharacterRange(0, s.Length) };&lt;br&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; StringFormat sf = new StringFormat(sformat);&lt;br&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; sf.SetMeasurableCharacterRanges(characterRanges);&lt;br&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; // Measure whole string.&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; Region[] stringRegions = new Region[1];&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;&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; stringRegions = g.MeasureCharacterRanges(&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; s, f, new RectangleF(), sf);&lt;br&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; RectangleF measureRect = stringRegions[0].GetBounds(g);&lt;br&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; Single fontHeight = f.GetHeight(g);&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; Single fontAscentHeight =&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; (fontHeight / f.FontFamily.GetLineSpacing(f.Style)) *&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; f.FontFamily.GetCellAscent(f.Style);&lt;br&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; size.Width = measureRect.Width;&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; size.Height = fontAscentHeight;&lt;br&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; return size;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;</description><author>abentov</author><pubDate>Wed, 11 Nov 2009 15:51:10 GMT</pubDate><guid isPermaLink="false">New Post: 1 px difference on render 20091111035110P</guid></item><item><title>Reviewed: HTML Renderer 1.0.0.0 (2) (okt 22, 2009)</title><link>http://htmlrenderer.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22538#ReviewBy-JonOdgaard</link><description>Rated 5 Stars &amp;#40;out of 5&amp;#41; - Incredible work&amp;#33; Any plans on implementing selecting parts of html document using rendered output&amp;#63; Or maybe moving on to the next step and enable actual WYSIWYG editing of the rendered document &amp;#40;not the raw HTML&amp;#41;&amp;#63;</description><author>JonOdgaard</author><pubDate>Thu, 22 Oct 2009 19:42:03 GMT</pubDate><guid isPermaLink="false">Reviewed: HTML Renderer 1.0.0.0 (2) (okt 22, 2009) 20091022074203P</guid></item><item><title>Commented Issue: Crash when clicking an anchor that has an URL with an equal sign [2547]</title><link>http://htmlrenderer.codeplex.com/WorkItem/View.aspx?WorkItemId=2547</link><description>When having the following example script&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#60;html&amp;#62;&lt;br /&gt;&amp;#60;body&amp;#62;This is text with &amp;#60;a href&amp;#61;&amp;#34;http&amp;#58;&amp;#47;&amp;#47;www.my-page.com&amp;#47;index.html&amp;#63;token&amp;#61;value&amp;#34;&amp;#62;a hyperlink&amp;#60;&amp;#47;a&amp;#62; inside.&amp;#60;&amp;#47;body&amp;#62;&lt;br /&gt;&amp;#60;&amp;#47;html&amp;#62;&lt;br /&gt;&lt;br /&gt;The renderer crashes with &amp;#34;EmptyURL&amp;#34; when clicking the hyperlink.&lt;br /&gt;&lt;br /&gt;This happens with any URL that contains an equal sign &amp;#34;&amp;#61;&amp;#34;&lt;br /&gt;&lt;br /&gt;Question&amp;#58; Any idea how to correct this&amp;#63;&lt;br /&gt;Comments: ** Comment from web user: UweKeim ** &lt;p&gt;OK, I think I fixed it by doing the following&amp;#58;&lt;/p&gt;&lt;p&gt;------------------------&lt;/p&gt;&lt;p&gt;1.&amp;#41; Changed the RegEx in &amp;#34;Parser.cs&amp;#34; due to the hint at http&amp;#58;&amp;#47;&amp;#47;stackoverflow.com&amp;#47;questions&amp;#47;317053&amp;#47;regular-expression-for-extracting-tag-attributes&amp;#47;574968&amp;#35;574968 to the following&amp;#58;&lt;/p&gt;&lt;p&gt;public const string HmlTagAttributes &amp;#61; &amp;#34;&amp;#40;&amp;#63;&amp;#60;name&amp;#62;&amp;#92;&amp;#92;b&amp;#92;&amp;#92;w&amp;#43;&amp;#92;&amp;#92;b&amp;#41;&amp;#92;&amp;#92;s&amp;#42;&amp;#61;&amp;#92;&amp;#92;s&amp;#42;&amp;#40;&amp;#63;&amp;#60;value&amp;#62;&amp;#92;&amp;#34;&amp;#91;&amp;#94;&amp;#92;&amp;#34;&amp;#93;&amp;#42;&amp;#92;&amp;#34;&amp;#124;&amp;#39;&amp;#91;&amp;#94;&amp;#39;&amp;#93;&amp;#42;&amp;#39;&amp;#124;&amp;#91;&amp;#94;&amp;#92;&amp;#34;&amp;#39;&amp;#60;&amp;#62;&amp;#92;&amp;#92;s&amp;#93;&amp;#43;&amp;#41;&amp;#34;&amp;#59;&lt;/p&gt;&lt;p&gt;2.&amp;#41; Modified the constructor in &amp;#34;HtmlTag.cs&amp;#34; to the following&amp;#58;&lt;/p&gt;&lt;p&gt;public HtmlTag&amp;#40;string tag&amp;#41;&lt;br /&gt;&amp;#9;&amp;#58; this&amp;#40;&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;&amp;#9;tag &amp;#61; tag.Substring&amp;#40;1, tag.Length - 2&amp;#41;&amp;#59;&lt;/p&gt;&lt;p&gt;&amp;#9;int spaceIndex &amp;#61; tag.IndexOf&amp;#40;&amp;#34; &amp;#34;&amp;#41;&amp;#59;&lt;/p&gt;&lt;p&gt;&amp;#9;&amp;#47;&amp;#47;Extract tag name&lt;br /&gt;&amp;#9;if &amp;#40;spaceIndex &amp;#60; 0&amp;#41;&lt;br /&gt;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;_tagName &amp;#61; tag&amp;#59;&lt;br /&gt;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;else&lt;br /&gt;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;_tagName &amp;#61; tag.Substring&amp;#40;0, spaceIndex&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#125;&lt;/p&gt;&lt;p&gt;&amp;#9;&amp;#47;&amp;#47;Check if is end tag&lt;br /&gt;&amp;#9;if &amp;#40;_tagName.StartsWith&amp;#40;&amp;#34;&amp;#47;&amp;#34;&amp;#41;&amp;#41;&lt;br /&gt;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;_isClosing &amp;#61; true&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;_tagName &amp;#61; _tagName.Substring&amp;#40;1&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#125;&lt;/p&gt;&lt;p&gt;&amp;#9;_tagName &amp;#61; _tagName.ToLower&amp;#40;&amp;#41;&amp;#59;&lt;/p&gt;&lt;p&gt;&amp;#9;&amp;#47;&amp;#47;Extract attributes&lt;br /&gt;&amp;#9;MatchCollection atts &amp;#61; Parser.Match&amp;#40;Parser.HmlTagAttributes, tag&amp;#41;&amp;#59;&lt;/p&gt;&lt;p&gt;&amp;#9;foreach &amp;#40;Match att in atts&amp;#41;&lt;br /&gt;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;if &amp;#40;&amp;#33;att.Value.Contains&amp;#40;&amp;#64;&amp;#34;&amp;#61;&amp;#34;&amp;#41;&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;&amp;#33;Attributes.ContainsKey&amp;#40;att.Value&amp;#41;&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;Attributes.Add&amp;#40;att.Value.ToLower&amp;#40;&amp;#41;, string.Empty&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;&amp;#9;else&lt;br /&gt;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#47;&amp;#47;Extract attribute and value&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;string&amp;#91;&amp;#93; chunks &amp;#61; new string&amp;#91;2&amp;#93;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;chunks&amp;#91;0&amp;#93; &amp;#61; att.Value.Substring&amp;#40;0, att.Value.IndexOf&amp;#40;&amp;#39;&amp;#61;&amp;#39;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;chunks&amp;#91;1&amp;#93; &amp;#61; att.Value.Substring&amp;#40;att.Value.IndexOf&amp;#40;&amp;#39;&amp;#61;&amp;#39;&amp;#41; &amp;#43; 1&amp;#41;&amp;#59;&lt;/p&gt;&lt;p&gt;&amp;#9;&amp;#9;&amp;#9;string attname &amp;#61; chunks&amp;#91;0&amp;#93;.Trim&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;string attvalue &amp;#61; chunks&amp;#91;1&amp;#93;.Trim&amp;#40;&amp;#41;&amp;#59;&lt;/p&gt;&lt;p&gt;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;attvalue.StartsWith&amp;#40;&amp;#34;&amp;#92;&amp;#34;&amp;#34;&amp;#41; &amp;#38;&amp;#38; attvalue.EndsWith&amp;#40;&amp;#34;&amp;#92;&amp;#34;&amp;#34;&amp;#41; &amp;#38;&amp;#38; attvalue.Length &amp;#62; 2&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#123;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;attvalue &amp;#61; attvalue.Substring&amp;#40;1, attvalue.Length - 2&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#125;&lt;/p&gt;&lt;p&gt;&amp;#9;&amp;#9;&amp;#9;if &amp;#40;&amp;#33;Attributes.ContainsKey&amp;#40;attname&amp;#41;&amp;#41;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#9;&amp;#9;Attributes.Add&amp;#40;attname, attvalue&amp;#41;&amp;#59;&lt;br /&gt;&amp;#9;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#9;&amp;#125;&lt;br /&gt;&amp;#125;&lt;/p&gt;&lt;p&gt;------------------------&lt;/p&gt;&lt;p&gt;Hopefully this if of help to someone.&lt;/p&gt;</description><author>UweKeim</author><pubDate>Fri, 04 Sep 2009 22:00:16 GMT</pubDate><guid isPermaLink="false">Commented Issue: Crash when clicking an anchor that has an URL with an equal sign [2547] 20090904100016P</guid></item><item><title>Commented Issue: Crash when clicking an anchor that has an URL with an equal sign [2547]</title><link>http://htmlrenderer.codeplex.com/WorkItem/View.aspx?WorkItemId=2547</link><description>When having the following example script&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#60;html&amp;#62;&lt;br /&gt;&amp;#60;body&amp;#62;This is text with &amp;#60;a href&amp;#61;&amp;#34;http&amp;#58;&amp;#47;&amp;#47;www.my-page.com&amp;#47;index.html&amp;#63;token&amp;#61;value&amp;#34;&amp;#62;a hyperlink&amp;#60;&amp;#47;a&amp;#62; inside.&amp;#60;&amp;#47;body&amp;#62;&lt;br /&gt;&amp;#60;&amp;#47;html&amp;#62;&lt;br /&gt;&lt;br /&gt;The renderer crashes with &amp;#34;EmptyURL&amp;#34; when clicking the hyperlink.&lt;br /&gt;&lt;br /&gt;This happens with any URL that contains an equal sign &amp;#34;&amp;#61;&amp;#34;&lt;br /&gt;&lt;br /&gt;Question&amp;#58; Any idea how to correct this&amp;#63;&lt;br /&gt;Comments: ** Comment from web user: UweKeim ** &lt;p&gt;Seems that the definition&lt;/p&gt;&lt;p&gt;public const string HmlTagAttributes &amp;#61; &amp;#34;&amp;#91;&amp;#94;&amp;#92;&amp;#92;s&amp;#93;&amp;#42;&amp;#92;&amp;#92;s&amp;#42;&amp;#61;&amp;#92;&amp;#92;s&amp;#42;&amp;#40;&amp;#92;&amp;#34;&amp;#91;&amp;#94;&amp;#92;&amp;#34;&amp;#93;&amp;#42;&amp;#92;&amp;#34;&amp;#124;&amp;#91;&amp;#94;&amp;#92;&amp;#92;s&amp;#93;&amp;#42;&amp;#41;&amp;#34;&amp;#59;&lt;/p&gt;&lt;p&gt;inside &amp;#34;Parser.cs&amp;#34; is not capable of handling equal signs inside attributes. I am currently trying to figure out how to solve.&lt;/p&gt;</description><author>UweKeim</author><pubDate>Fri, 04 Sep 2009 21:37:17 GMT</pubDate><guid isPermaLink="false">Commented Issue: Crash when clicking an anchor that has an URL with an equal sign [2547] 20090904093717P</guid></item><item><title>Created Issue: Crash when clicking an anchor that has an URL with an equal sign [2547]</title><link>http://htmlrenderer.codeplex.com/WorkItem/View.aspx?WorkItemId=2547</link><description>When having the following example script&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#60;html&amp;#62;&lt;br /&gt;&amp;#60;body&amp;#62;This is text with &amp;#60;a href&amp;#61;&amp;#34;http&amp;#58;&amp;#47;&amp;#47;www.my-page.com&amp;#47;index.html&amp;#63;token&amp;#61;value&amp;#34;&amp;#62;a hyperlink&amp;#60;&amp;#47;a&amp;#62; inside.&amp;#60;&amp;#47;body&amp;#62;&lt;br /&gt;&amp;#60;&amp;#47;html&amp;#62;&lt;br /&gt;&lt;br /&gt;The renderer crashes with &amp;#34;EmptyURL&amp;#34; when clicking the hyperlink.&lt;br /&gt;&lt;br /&gt;This happens with any URL that contains an equal sign &amp;#34;&amp;#61;&amp;#34;&lt;br /&gt;&lt;br /&gt;Question&amp;#58; Any idea how to correct this&amp;#63;&lt;br /&gt;</description><author>UweKeim</author><pubDate>Fri, 04 Sep 2009 21:04:44 GMT</pubDate><guid isPermaLink="false">Created Issue: Crash when clicking an anchor that has an URL with an equal sign [2547] 20090904090444P</guid></item><item><title>Patch Uploaded: #3732</title><link>http://htmlrenderer.codeplex.com/SourceControl/PatchList.aspx</link><description>
&lt;p&gt;&lt;a href='http://www.codeplex.com/site/users/view/bravenewnerd'&gt;bravenewnerd&lt;/a&gt; has uploaded a patch.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt;&lt;br /&gt;Added virtual method &amp;#34;LinkClicked&amp;#40;CssBox&amp;#41;&amp;#34; to allow for other methods of handling anchors than using CssValue.GoLink. Version submitted simply forwards request to CssValue as before. All changes are at the end of the HtmlPanel.cs file&lt;/p&gt;</description><author>bravenewnerd</author><pubDate>Tue, 01 Sep 2009 15:18:21 GMT</pubDate><guid isPermaLink="false">Patch Uploaded: #3732 20090901031821P</guid></item><item><title>Created Issue: Cookie passed through to anchor href</title><link>http://htmlrenderer.codeplex.com/WorkItem/View.aspx?WorkItemId=2526</link><description>Would like to have a method to pass a unique id through to a method&amp;#58;&amp;#60;Class&amp;#62;.&amp;#60;Method&amp;#62;.  E.g. if you dynamically create a list of links that all point to the same static method we need a way to distinguish which link in the list was clicked. Perhaps using the id attribute of the anchor&amp;#63;&lt;br /&gt;</description><author>bravenewnerd</author><pubDate>Tue, 01 Sep 2009 10:22:41 GMT</pubDate><guid isPermaLink="false">Created Issue: Cookie passed through to anchor href 20090901102241A</guid></item><item><title>New Post: Plans for WPF</title><link>http://htmlrenderer.codeplex.com/Thread/View.aspx?ThreadId=55227</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;+1 for a WPF backend. There is a huge need for a WPF friendly HTML rendering component and not the crippled hack that is currently System.Windows.WebBrowser. For example, if we had an HTML renderer in WPF, we could apply basic WPF transformations (rotate and scale) as well as pixel shader effects to web pages. This would make your project really popular. &amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>mcdirmid</author><pubDate>Sat, 25 Jul 2009 00:04:34 GMT</pubDate><guid isPermaLink="false">New Post: Plans for WPF 20090725120434A</guid></item><item><title>Created Issue: HtmlRenderer.Render methods do not take Y coordinate into account</title><link>http://htmlrenderer.codeplex.com/WorkItem/View.aspx?WorkItemId=1665</link><description>The static HtmlRenderer.Render methods do not take the passed in RectangleF.Y or PointF.Y coordinate into account, so all rendering seems to be defaulting to Y &amp;#61; 0.&lt;br /&gt;&lt;br /&gt;Using new RectangleF&amp;#40;0,0,100,100&amp;#41; works great since it should start at 0.  Using new PointF &amp;#40;0,0&amp;#41; also works correctly.&lt;br /&gt;&lt;br /&gt;Using new RectangleF&amp;#40;50,50,100,100&amp;#41; or new PointF&amp;#40;50,50&amp;#41; on the other hand results in incorrect rendering.  The X will start at 50 &amp;#40;correct&amp;#41; but Y will be 0 &amp;#40;incorrect, should be 50&amp;#41;.  If clip &amp;#61; true there is a chance that nothing will be rendered since it is outside of the visible bounds.  If clip &amp;#61; false then rendering will take place, but Y will start at 0 instead of the passed in Y coordinate.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;System.Drawing.Graphics workaround&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#47;&amp;#47; create graphics container to reset graphics object after translation&lt;br /&gt;System.Drawing.Drawing2D.GraphicsContainer con &amp;#61; g.BeginContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&amp;#47;&amp;#47; use translate method to set desired x and y&lt;br /&gt;g.TranslateTransform&amp;#40;50, 50&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&amp;#47;&amp;#47; call HtmlRenderer.Render method passing in x &amp;#61; 0 and y &amp;#61; 0&lt;br /&gt;&amp;#47;&amp;#47; new RectangleF&amp;#40;0, 0, width, height&amp;#41; or new PointF&amp;#40;0, 0&amp;#41;&lt;br /&gt;System.Drawing.Html.HtmlRenderer.Render&amp;#40;g, &amp;#34;&amp;#60;strong&amp;#62;this is a simple html test&amp;#60;&amp;#47;strong&amp;#62;&amp;#34;, new RectangleF&amp;#40;0, 0, 100, 50&amp;#41;, false&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&amp;#47;&amp;#47; reset graphics&lt;br /&gt;g.EndContainer&amp;#40;con&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;HtmlRenderer source code change&amp;#58;&lt;br /&gt;&lt;br /&gt;I don&amp;#39;t fully understand the code yet &amp;#40;I haven&amp;#39;t had a chance to just sit down for a while and dig through all the methods&amp;#41;, but I was able to make a change that worked for me.  I have not tested the change with HtmlLabel, HtmlPanel, or HtmlToolTip since I have been using the static Render methods in HtmlRenderer.&lt;br /&gt;&lt;br /&gt;Look around line 2693 in CssBox.cs under the MeasureBounds&amp;#40;Graphics g&amp;#41; method.  That calculates the top &amp;#40;Y&amp;#41; location.  ContainingBlock.Location.Y is not used, this is probably why Y is defaulting to 0 instead of the passed in Y coordinate.  If ContainingBlock.Location.Y is added into the calculation then it sets Y to the desired location.&lt;br /&gt;&lt;br /&gt;Again, this change works for the static HtmlRenderer.Render method but I don&amp;#39;t know what it will do to the Html controls.  It is probably a better idea to use the graphics workaround method mentioned above until an official fix is released.&lt;br /&gt;</description><author>SomeoneElse</author><pubDate>Tue, 26 May 2009 18:40:13 GMT</pubDate><guid isPermaLink="false">Created Issue: HtmlRenderer.Render methods do not take Y coordinate into account 20090526064013P</guid></item><item><title>Created Issue: Add static MeasureHtml methods to HtmlRenderer</title><link>http://htmlrenderer.codeplex.com/WorkItem/View.aspx?WorkItemId=1605</link><description>It would be great to have some static MeasureHtml &amp;#40;MeasureBounds&amp;#41; methods on HtmlRenderer to help determine how much space is needed when using the static HtmlRenderer.Render method.&lt;br /&gt;</description><author>SomeoneElse</author><pubDate>Tue, 05 May 2009 06:25:06 GMT</pubDate><guid isPermaLink="false">Created Issue: Add static MeasureHtml methods to HtmlRenderer 20090505062506A</guid></item><item><title>New Post: Plans for WPF</title><link>http://htmlrenderer.codeplex.com/Thread/View.aspx?ThreadId=55227</link><description>&lt;div style="line-height: normal;"&gt;Are there any plans to upgrade (or provide alternative version) this control to Windows Presentation Framework?&lt;br&gt;
&lt;br&gt;
Note that this way you could skip adding own CSS styles and support a rich WPF styling possibilities.
&lt;/div&gt;</description><author>abadura</author><pubDate>Mon, 04 May 2009 08:28:16 GMT</pubDate><guid isPermaLink="false">New Post: Plans for WPF 20090504082816A</guid></item><item><title>Created Issue: &lt;TBODY&gt;   bug  and Style issues</title><link>http://htmlrenderer.codeplex.com/WorkItem/View.aspx?WorkItemId=1443</link><description>Hi,&lt;br /&gt;&lt;br /&gt;&amp;#58;&amp;#41;  first what a great library you&amp;#39;ve made&lt;br /&gt;&lt;br /&gt;I was hacking your code for making PDF file from HTML  and found some issues&lt;br /&gt;&lt;br /&gt;hope you like it &amp;#59;&amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1&amp;#41; &amp;#60;TBODY&amp;#62;    not supported in tables         &amp;#123;however I didn&amp;#39;t read the html specs so I don&amp;#39;t know if it is standard or not&amp;#125;&lt;br /&gt;&lt;br /&gt;2&amp;#41;  IMPORTANT &amp;#58;&amp;#40;    &lt;br /&gt;           something wrong goes with the styles  when the property name is being in small letter&lt;br /&gt;&lt;br /&gt;for example&lt;br /&gt;&lt;br /&gt;A&amp;#41; &amp;#60;TABLE style&amp;#61;&amp;#34;DISPLAY&amp;#58; inline&amp;#59; BORDER-COLLAPSE&amp;#58; collapse&amp;#59; FONT-SIZE&amp;#58; 1em&amp;#34; border&amp;#61;1&amp;#62;     &amp;#123;This renders correctly&amp;#125;&lt;br /&gt;&lt;br /&gt;B&amp;#41; &amp;#60;table style&amp;#61;&amp;#34;display&amp;#58;inline&amp;#59;border-collapse&amp;#58;collapse&amp;#59;font-size&amp;#58;1em&amp;#34; border&amp;#61;1&amp;#62;       &amp;#123;This behaves wrong&amp;#125;&lt;br /&gt;&lt;br /&gt;more over its spread all over the tags that contain lower case styles in property name&lt;br /&gt;&lt;br /&gt;&amp;#60;TD style&amp;#61;&amp;#34;VERTICAL-ALIGN&amp;#58; top&amp;#34; class&amp;#61;ms-rtetablecells&amp;#62;    &amp;#91;THIS IS RENDERS CORRECTLY&amp;#93;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#60;td style&amp;#61;&amp;#34;vertical-align&amp;#58;top&amp;#34; class&amp;#61;ms-rtetablecells&amp;#62;           &amp;#91;THIS WILL not RENDER  CORRECTLY &amp;#58;&amp;#40;&amp;#93;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;please find the attached html file   &amp;#123;if you want it to be rendered remove &amp;#60;tbody&amp;#62; tags   and then see the style issues&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thank you&lt;br /&gt;Ahmed Sadek&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;this&lt;br /&gt;</description><author>IBlueSun</author><pubDate>Mon, 23 Mar 2009 19:15:23 GMT</pubDate><guid isPermaLink="false">Created Issue: &lt;TBODY&gt;   bug  and Style issues 20090323071523P</guid></item><item><title>Reviewed: HTML Renderer 1.0.0.0 (2) (Mar 12, 2009)</title><link>http://htmlrenderer.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22538</link><description>Rated 5 Stars (out of 5) - I like it really. I'll try the future releases too.</description><author>BalabanS</author><pubDate>Thu, 12 Mar 2009 20:30:59 GMT</pubDate><guid isPermaLink="false">Reviewed: HTML Renderer 1.0.0.0 (2) (Mar 12, 2009) 20090312083059P</guid></item><item><title>New Post: Minor grammar correction suggestion for home page</title><link>http://www.codeplex.com/HtmlRenderer/Thread/View.aspx?ThreadId=44232</link><description>&lt;div style="line-height: normal;"&gt;Corrected. Thanks a lot&lt;/div&gt;</description><author>menendezpoo</author><pubDate>Fri, 30 Jan 2009 14:43:24 GMT</pubDate><guid isPermaLink="false">New Post: Minor grammar correction suggestion for home page 20090130024324P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/HtmlRenderer/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
This is a library of 100% managed code that draws beautifully formatted HTML. &lt;br /&gt; &lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=HtmlRenderer&amp;amp;DownloadId=54352" alt="renderer_001.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;It comes along with three WinForms controls:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;HtmlPanel&lt;/li&gt;&lt;li&gt;HtmlLabel&lt;/li&gt;&lt;li&gt;HtmlTootlip&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;And a static method ready to draw html:&lt;br /&gt; &lt;br /&gt;&lt;b&gt;HtmlRenderer.Render&lt;/b&gt;(Graphics g, string html, RectangleF area, bool clip)&lt;br /&gt; &lt;br /&gt;&lt;u&gt;&lt;b&gt;Note&lt;/b&gt;: The drawing engine is based on the CSS Level 2 specification.&lt;/u&gt;&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Background
&lt;/h2&gt; &lt;br /&gt;For years, I have been planning for a project like this. I prepared my self quite well. I went through the entire CSS Level 2 specifiation along with the HTML 4.01 specification.&lt;br /&gt; &lt;br /&gt;One of the most interesting things I found is this: Drawing HTML is no more than laying out a bunch of boxes with borders margins and paddings. Once you overpass this paradigm, everything else is to help the code actually place the boxes on the right place, and then paint the string each box contains.&lt;br /&gt; &lt;br /&gt;Imagine the power that drawing full-rich-formatted HTML on your controls can give to your applications. Use bold when you need it, italics on every message, and borders and fonts as you may like or need everywhere on the desktop application. One of the first projects where I will use it is on the tooltips of my Ribbon Project.&lt;br /&gt; &lt;br /&gt;Although I have not tested it on mono yet, there should be no problem at all, since all of the code on the library is managed code and the methods it use to paint are quite basic. It draws lines, rectangles, curves and text.&lt;br /&gt; &lt;br /&gt;For now, the render looks really nice. Some times it can fool you to think your'e using a real Web Browser, trust me, download the demo, is just an exe and a dll.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Using the code
&lt;/h2&gt; &lt;br /&gt;The library locates the code under the System.Drawing.Html namespace. The controls that render HTML are under the System.Windows.Forms namespace.&lt;br /&gt; &lt;br /&gt;The renderer follows the CSS Box Model. Box model is nothing but a tree of boxes, just as the tree of HTML, each of this boxes is represented by a very used class called CssBox. The start node is represented by the class InitialContainer.&lt;br /&gt; &lt;br /&gt;All the known CSS properties apply to each of this boxes. Each box may contain any number of child boxes and just one parent. The only box that has no parent at all is the so called Initial Container.&lt;br /&gt; &lt;br /&gt;A typical use of an Inital Container to draw HTML would look like this:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
//Create the InitialContainer
InitialContainer c = new InitialContainer(&amp;quot;&amp;lt;html&amp;gt;&amp;quot;);
 
 
//Give bounds to the container
c.SetBounds(ClientRectangle);
 
 
//Measure bounds of each box on the tree
c.MeasureBounds(graphics);
 
 
//Paint the HTML document
c.Paint(graphics);
&lt;/pre&gt; &lt;br /&gt; &lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=HtmlRenderer&amp;amp;DownloadId=54352" alt="renderer_001.jpg" /&gt;&lt;br /&gt;&lt;i&gt;First a label, then a panel and at last a ToolTip, all of which support HTML rendering.&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;You may never use it, since I provided Controls and Methods that creates this object for you.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
HtmlPanel
&lt;/h3&gt; &lt;br /&gt;A panel that is ready to accept HTML code via its Text property. It's full name is System.Windows.Forms.HtmlPanel&lt;br /&gt; &lt;br /&gt;The only properties you need to know are:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;AutoScroll. Activates/Deactivates the auto-scroll capabilities as you know. It is set to true by default.&lt;/li&gt;&lt;li&gt;Text. Gets/Sets the HTML source.&lt;/li&gt;&lt;li&gt;The panel will update the bounds of the elements as you scroll or resize the control.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
HtmlLabel
&lt;/h3&gt; &lt;br /&gt;A label that is ready to accept HTML code via its Text property. It's full name is System.Windows.Forms.HtmlLabel&lt;br /&gt; &lt;br /&gt;The only properties you need to know are:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;AutoScroll. Activates/Deactivates the auto-scroll capabilities as you know. It is set to true by default.&lt;/li&gt;&lt;li&gt;AutoSize. Sets the size of the label automatically if activated.&lt;/li&gt;&lt;li&gt;Text. Gets/Sets the HTML source.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Some interesting things:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;The label will update the bounds of the elements as you scroll or resize the control.&lt;/li&gt;&lt;li&gt;The label can be transparent&lt;/li&gt;&lt;li&gt;The panel has better performance than the label.&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h3&gt;
HtmlToolTip
&lt;/h3&gt; &lt;br /&gt;Works exactly like the ToolTip you already know, with the little difference that this tooltip will render HTML on it. It's full name is System.Windows.Forms.HtmlToolTip&lt;br /&gt; &lt;br /&gt;There are no properties here to learn. Use it just the way you use the ToolTip that comes with the framework. Internally, it just handles the OwnerDraw event.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Some features of my own
&lt;/h2&gt; &lt;br /&gt;I took the liberty of adding a copule of features:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Background gradients&lt;/li&gt;&lt;li&gt;Rounded corners&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;These are achieved thru the following CSS properties:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;background-gradient: (color)&lt;/li&gt;&lt;li&gt;background-gradient-angle: (number)&lt;/li&gt;&lt;li&gt;corner-ne-radius: (length)&lt;/li&gt;&lt;li&gt;corner-nw-radius: (length)&lt;/li&gt;&lt;li&gt;corner-se-radius: (length)&lt;/li&gt;&lt;li&gt;corner-se-radius: (length)&lt;/li&gt;&lt;li&gt;corner-radius: (length){1,4} (shorthand for all corners)&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
What's currently supported by the Renderer?
&lt;/h2&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Most border, padding and margin and positioning CSSproperties (except for the height property).&lt;/li&gt;&lt;li&gt;Text alignment horizontally and vertically, text indents too.&lt;/li&gt;&lt;li&gt;Lists, ordered and unordered. Advanced numbering is not yet supported.&lt;/li&gt;&lt;li&gt;Tables, almost at all of it. Cell combinations work quite well as far as I tested them.&lt;/li&gt;&lt;li&gt;Fonts (partially) and Colors&lt;/li&gt;&lt;li&gt;Backgrounds (just color)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description><author>menendezpoo</author><pubDate>Fri, 30 Jan 2009 14:43:04 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090130024304P</guid></item><item><title>Created Feature: Home, End, Page Up, Page Down</title><link>http://www.codeplex.com/HtmlRenderer/WorkItem/View.aspx?WorkItemId=717</link><description>Add support for the scroll navigation keys&amp;#58;&lt;br /&gt;&lt;br /&gt;Home, End, Page Up, Page Down&lt;br /&gt;</description><author>menendezpoo</author><pubDate>Fri, 30 Jan 2009 14:40:13 GMT</pubDate><guid isPermaLink="false">Created Feature: Home, End, Page Up, Page Down 20090130024013P</guid></item></channel></rss>