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

<channel>
	<title>Component Factory &#187; Krypton Workspace</title>
	<atom:link href="http://www.componentfactory.com/blog/category/krypton-workspace/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.componentfactory.com/blog</link>
	<description>Windows Forms Controls for .NET Smart Client Applications</description>
	<lastBuildDate>Mon, 05 Sep 2011 10:28:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Krypton Suite 4.3 Released</title>
		<link>http://www.componentfactory.com/blog/2010/09/krypton-4-3-released/</link>
		<comments>http://www.componentfactory.com/blog/2010/09/krypton-4-3-released/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 04:41:18 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=669</guid>
		<description><![CDATA[Our latest release includes three new components for the Toolkit. All of these are modal dialogs that are intended to replace your use of the existing message box, task dialog and input box forms. So now your dialogs can be consistent with the rest of the application by also using the Krypton palette styling. The switch to using the [...]]]></description>
			<content:encoded><![CDATA[<p>Our latest release includes three new components for the <em>Toolkit</em>. All of these are modal dialogs that are intended to replace your use of the existing message box, task dialog and input box forms. So now your dialogs can be consistent with the rest of the application by also using the <em>Krypton</em> palette styling.</p>
<p>The switch to using the <em>KryptonMessageBox</em> is very easy because you only need to perform a <em>Find/Replace</em> of the phrase <em>MessageBox.Show</em> with <em>KryptonMessageBox.Show</em>. This is because the exact same static <em>Show</em> methods have been used in the <em>Krypton</em> implementation as exist for the <em>MessageBox</em> which ensures an easy upgrade path. Check out the three new samples that can be accessed from the <em>KryptonExplorer</em> in order to see them working and experiment with the different settings that are possible.</p>
<p>Also present in this release is an important bug fix. Under Windows 7 the showing of a dialog that is derived from <em>KryptonForm</em> can fail. The bug is very nasty in that the dialog simply fails to be drawn on the screen, which is likely to be very confusing for your users. This has now been fixed. For a full list of changes you should check out the change lists that are installed.</p>
<p><strong>New Components</strong><br />
- KryptonMessageBox<br />
- KryptonTaskDialog<br />
- KryptonInputBox</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite430.zip">Download 4.3</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/09/krypton-4-3-released/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Krypton Suite 4.2 Released</title>
		<link>http://www.componentfactory.com/blog/2010/07/krypton-suite-4-2-released/</link>
		<comments>http://www.componentfactory.com/blog/2010/07/krypton-suite-4-2-released/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 03:25:11 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=653</guid>
		<description><![CDATA[This new release is smaller than usual but does contain a new Toolkit control called the KryptonTrackBar. It acts like the standard windows version allowing the user to drag a position indicator along a track. It also has the ability to draw the track as a triangle and so giving the appearance of a volume control. [...]]]></description>
			<content:encoded><![CDATA[<p>This new release is smaller than usual but does contain a new Toolkit control called the KryptonTrackBar. It acts like the standard windows version allowing the user to drag a position indicator along a track. It also has the ability to draw the track as a triangle and so giving the appearance of a volume control. Always provided are a number of bug fixes and more minor additions.</p>
<p>Please download using the following direct link…</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite420.zip">Download 4.2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/07/krypton-suite-4-2-released/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Krypton Suite 4.1.5 Released</title>
		<link>http://www.componentfactory.com/blog/2010/03/krypton-suite-4-1-5-released/</link>
		<comments>http://www.componentfactory.com/blog/2010/03/krypton-suite-4-1-5-released/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 04:40:44 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=629</guid>
		<description><![CDATA[The latest maintenance release of the Krypton Suite is now available for download. Please download using the following direct link&#8230; Download 4.1.5 Major Change    &#8211; Moved all design time classes to separate assembly New KryptonDataGridView Columns    &#8211; KryptonDataGridViewComboBoxColumn    &#8211; KryptonDataGridViewNumericUpDownColumn    &#8211; KryptonDataGridViewDomainUpDownColumn    &#8211; KryptonDataGridViewMaskedTextBoxColumn    &#8211; KryptonDataGridViewDateTimePickerColumn Major Bug fixes [...]]]></description>
			<content:encoded><![CDATA[<p>The latest maintenance release of the Krypton Suite is now available for download.</p>
<p>Please download using the following direct link&#8230;</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite415.zip">Download 4.1.5</a></p>
<p><strong>Major Change<br />
</strong>   &#8211; Moved all design time classes to separate assembly</p>
<p><strong>New KryptonDataGridView Columns</strong><br />
   &#8211; KryptonDataGridViewComboBoxColumn<br />
   &#8211; KryptonDataGridViewNumericUpDownColumn<br />
   &#8211; KryptonDataGridViewDomainUpDownColumn<br />
   &#8211; KryptonDataGridViewMaskedTextBoxColumn<br />
   &#8211; KryptonDataGridViewDateTimePickerColumn</p>
<p><strong>Major Bug fixes</strong><br />
   &#8211; TAB key works inside Navigator<br />
   &#8211; AutoComplete works for KryptonComboBox<br />
   &#8211; KryptonGallery memory usage improved</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/03/krypton-suite-4-1-5-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Krypton Suite Beta</title>
		<link>http://www.componentfactory.com/blog/2010/03/krypton-suite-beta/</link>
		<comments>http://www.componentfactory.com/blog/2010/03/krypton-suite-beta/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 08:12:29 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=627</guid>
		<description><![CDATA[A beta version of the next release is now available for testing. It is number 4.1.4 and contains bug fixes and some minor new functionality with the addition of some KryptonDataGridView columns. You can download using the following link&#8230; Download Kryton Beta]]></description>
			<content:encoded><![CDATA[<p>A beta version of the next release is now available for testing. It is number 4.1.4 and contains bug fixes and some minor new functionality with the addition of some KryptonDataGridView columns. You can download using the following link&#8230;</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite414.zip">Download Kryton Beta</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/03/krypton-suite-beta/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Krypton.Design</title>
		<link>http://www.componentfactory.com/blog/2010/02/componentfactory-krypton-design/</link>
		<comments>http://www.componentfactory.com/blog/2010/02/componentfactory-krypton-design/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 11:11:58 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=611</guid>
		<description><![CDATA[One of the new features of .NET Framework 4.0 is the introduction of Client Profiles. The Client Profile is a cut down version of the full .NET Framework that only includes the essential assemblies needed for client based applications. The idea is to reduce the download/install size for this common deployment scenario. Design time classes are not [...]]]></description>
			<content:encoded><![CDATA[<p>One of the new features of <em>.NET Framework 4.0</em> is the introduction of <em>Client Profiles</em>. The <em>Client Profile</em> is a cut down version of the full <em>.NET Framework</em> that only includes the essential assemblies needed for client based applications. The idea is to reduce the download/install size for this common deployment scenario. Design time classes are not part of the client profile because they are implicitly only needed for designing and not for running your applications.</p>
<p>At the moment <em>Krypton</em> cannot be used in this situation because the <em>Krypton</em> design time classes are placed inside the same assembly as the relevant controls. So the <em>Krypton Toolkit</em> design time classes are inside the <em>Toolkit</em> assembly, <em>Krypton Ribbon</em> design time classes inside the <em>Ribbon</em> assembly and so forth. But the design time assembly is not included in the client profile and so the <em>Krypton</em> assemblies will not be loadable.</p>
<p>To enable this scenario I have now created a new <em>ComponentFactory.Krypton.Design</em> assembly and moved all the design time classes into it. This means you can write a client profile application that references the <em>Krypton Toolkit/Ribbon/Navigator/Workspace/Docking</em> assemblies and it will work just fine because the <em>Krypton</em> assemblies no longer reference the <em>System.Design</em> namespace.</p>
<p>Note that client profiles are a feature exposed in <em>Visual Studio 2010</em> and so you will only be aware of them if you have downloaded and played with that version.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2010/02/componentfactory-krypton-design/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Krypton 4.1.1 Released</title>
		<link>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-released/</link>
		<comments>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-released/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 02:56:24 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=577</guid>
		<description><![CDATA[This is a maintenance release that contains bug fixes and just a single change in functionality. I recommend that you read the change list files, that are linked below, in order to see the full list of bugs that have been fixed. Also included is a fix to the installer that prevents the Krypton controls from appearing multiple times [...]]]></description>
			<content:encoded><![CDATA[<p>This is a maintenance release that contains bug fixes and just a single change in functionality. I recommend that you read the change list files, that are linked below, in order to see the full list of bugs that have been fixed. Also included is a fix to the installer that prevents the Krypton controls from appearing multiple times inside the Toolbox.</p>
<p>The single functional change is to the Office 2010 palettes. As the result of a developer <a href="http://www.componentfactory.com/forums/viewtopic.php?f=3&amp;t=2749">poll</a> indicated that people wanted the default size of the Office 2010 palettes changed to match that of the Office 2007 palettes. This change has been made in this release. You can however revert those palettes to the smaller size, or indeed any size you like, using the following example code&#8230;</p>
<p>   KryptonManager.PaletteOffice2010Blue.BaseFontSize = 8.5f;<br />
   KryptonManager.PaletteOffice2010Silver.BaseFontSize = 8.5f;<br />
   KryptonManager.PaletteOffice2010Black.BaseFontSize = 8.5f;</p>
<p>This new <em>BaseFontSize</em> property is available on the built-in palettes except the <em>Professional</em> variations. There is also a <em>BaseFontName</em> that allows the font to be changed away from the default <em>Segoe UI</em> setting.<br />
 </p>
<p><strong>Download Link<br />
</strong><a href="http://www.componentfactory.com/downloads/KryptonSuite411.zip">Download Krypton 4.1.1</a></p>
<p><strong>Change Lists<br />
</strong><a href="http://www.componentfactory.com/downloads/changeLists/KryptonToolkitChangeList.doc">Toolkit Change List</a><br />
<a href="http://www.componentfactory.com/downloads/changeLists/KryptonRibbonChangeList.doc">Ribbon Change List</a><br />
<a href="http://www.componentfactory.com/downloads/changeLists/KryptonNavigatorChangeList.doc">Navigator Change List</a><br />
<a href="http://www.componentfactory.com/downloads/changeLists/KryptonWorkspaceChangeList.doc">Workspace Change List</a><br />
<a href="http://www.componentfactory.com/downloads/changeLists/KryptonDockingChangeList.doc">Docking Change List</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Krypton 4.1.1 RC</title>
		<link>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-rc/</link>
		<comments>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-rc/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 11:41:41 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=575</guid>
		<description><![CDATA[You can download the Krypton 4.1.1 Release Candidate using the link at the bottom of this post. It contains bug fixes across all the major controls, an installer fix to prevent multiple control instances appearing inside the Toolbox, another installer fix so that docking components appear inside the Toolbox and a single extra piece of functionality. The extra functionality [...]]]></description>
			<content:encoded><![CDATA[<p>You can download the Krypton 4.1.1 Release Candidate using the link at the bottom of this post. It contains bug fixes across all the major controls, an installer fix to prevent multiple control instances appearing inside the Toolbox, another installer fix so that docking components appear inside the Toolbox and a single extra piece of functionality.</p>
<p>The extra functionality is a property that sets the base font size&#8230;</p>
<p>kryptonManager.PaletteOffice2010Blue.BaseFontSize = 9.5f;</p>
<p>This property is only provided on the built in palettes and can be accessed via the KryptonManager as seen in the above code example. This allows those that would like a bigger font for the Office 2010 palettes to achieve it using the above example code. Please report any issues inside the post comments or via a direct email to myself.</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite411.zip">Download 4.1.1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/12/krypton-4-1-1-rc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Krypton 4.1 Released</title>
		<link>http://www.componentfactory.com/blog/2009/11/krypton-4-1-released/</link>
		<comments>http://www.componentfactory.com/blog/2009/11/krypton-4-1-released/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 07:55:12 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=563</guid>
		<description><![CDATA[Download using this direct link&#8230; KryptonSuite410.zip New for Version 4.1 - Office 2010 Blue/Silver/Black Palettes - Office 2010 Style Ribbon - KryptonGroupBox - Various bug fixes Change Lists - KryptonToolkitChangeList.doc - KryptonNavigatorChangeList.doc - KryptonWorkspaceChangeList.doc - KryptonRibbonChangeList.doc - KryptonDockingChangeList.doc]]></description>
			<content:encoded><![CDATA[<p>Download using this direct link&#8230;<br />
<a href="http://www.componentfactory.com/downloads/KryptonSuite410.zip">KryptonSuite410.zip</a></p>
<p>New for Version 4.1<br />
- Office 2010 Blue/Silver/Black Palettes<br />
- Office 2010 Style Ribbon<br />
- KryptonGroupBox<br />
- Various bug fixes</p>
<p>Change Lists<br />
- <a href="http://www.componentfactory.com/downloads/changeLists/KryptonToolkitChangeList.doc">KryptonToolkitChangeList.doc</a><br />
- <a href="http://www.componentfactory.com/downloads/changeLists/KryptonNavigatorChangeList.doc">KryptonNavigatorChangeList.doc</a><br />
- <a href="http://www.componentfactory.com/downloads/changeLists/KryptonWorkspaceChangeList.doc">KryptonWorkspaceChangeList.doc</a><br />
- <a href="http://www.componentfactory.com/downloads/changeLists/KryptonRibbonChangeList.doc">KryptonRibbonChangeList.doc</a><br />
- <a href="http://www.componentfactory.com/downloads/changeLists/KryptonDockingChangeList.doc">KryptonDockingChangeList.doc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/11/krypton-4-1-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Krypton 4.1 Beta</title>
		<link>http://www.componentfactory.com/blog/2009/11/559/</link>
		<comments>http://www.componentfactory.com/blog/2009/11/559/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 06:40:35 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=559</guid>
		<description><![CDATA[Krypton 4.1 Beta For those interested in the new Office 2010 palettes or maybe the new KryptonGroupBox control you can download the Beta of the upcoming 4.1 release from here&#8230; Download Beta]]></description>
			<content:encoded><![CDATA[<p><strong>Krypton 4.1 Beta</strong></p>
<p>For those interested in the new <em>Office 2010</em> palettes or maybe the new <em>KryptonGroupBox</em> control you can download the Beta of the upcoming 4.1 release from here&#8230;</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite405.zip">Download Beta</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/11/559/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Krypton 4.0 Released</title>
		<link>http://www.componentfactory.com/blog/2009/08/krypton-40-released/</link>
		<comments>http://www.componentfactory.com/blog/2009/08/krypton-40-released/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 08:27:29 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=543</guid>
		<description><![CDATA[Download  using this direct link&#8230;     Download 4.0 New for Version 4.0    &#8211; VS2010 Style Docking system    &#8211; KryptonWrapLabel    &#8211; KryptonSeparator    &#8211; Workspace persistence    &#8211; Workspace max/restore feature    &#8211; Various bug fixes Change Lists   &#8211; Toolkit   &#8211; Navigator   &#8211; Workspace   &#8211; Ribbon]]></description>
			<content:encoded><![CDATA[<p><strong>Download  using this direct link&#8230;</strong><br />
    <a href="http://www.componentfactory.com/downloads/KryptonSuite400.zip">Download 4.0</a></p>
<p><strong>New for Version 4.0</strong><br />
   &#8211; VS2010 Style Docking system<br />
   &#8211; KryptonWrapLabel<br />
   &#8211; KryptonSeparator<br />
   &#8211; Workspace persistence<br />
   &#8211; Workspace max/restore feature<br />
   &#8211; Various bug fixes</p>
<p><strong>Change Lists</strong><br />
  &#8211; <a href="http://www.componentfactory.com/downloads/changeLists/KryptonToolkitChangeList.doc">Toolkit</a><br />
  &#8211; <a href="http://www.componentfactory.com/downloads/changeLists/KryptonNavigatorChangeList.doc">Navigator<br />
</a>  &#8211; <a href="http://www.componentfactory.com/downloads/changeLists/KryptonWorkspaceChangeList.doc">Workspace</a><br />
  &#8211; <a href="http://www.componentfactory.com/downloads/changeLists/KryptonRibbonChangeList.doc">Ribbon</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/08/krypton-40-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Price increase coming&#8230;</title>
		<link>http://www.componentfactory.com/blog/2009/08/price-increase-coming/</link>
		<comments>http://www.componentfactory.com/blog/2009/08/price-increase-coming/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 02:14:06 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=538</guid>
		<description><![CDATA[Expected Release Date The release of Krypton Suite 4.0 is looking like being the middle of next week. So expect an announcement on Wednesday 26th if all goes to plan. Obviously this could slip if a major bug appears just before release but I promise it will not be released early! Reduced Product Line-up Something [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Expected Release Date</strong><br />
The release of Krypton Suite 4.0 is looking like being the middle of next week. So expect an announcement on Wednesday 26th if all goes to plan. Obviously this could slip if a major bug appears just before release but I promise it will not be released early!</p>
<p><strong>Reduced Product Line-up</strong><br />
Something like 90% of all sales are for the full Krypton Suite and so I intend to simplify the list of product offerings by selling only the full Suite. Existing customers with the Navigator, Workspace or Ribbon that are still within their 12 month subscription will get a free upgrade to the Suite + Source. So no customers will miss out because of the change in policy.</p>
<p>The Suite will also only be offered with the full source code included so the ability to buy just a license is being removed. Most companies want the source code anyway and so this reduces the number of purchase options making it a simpler decision. So the purchase page is going to have just the Krypton Suite + Source with the only options being the number of licenses you want to buy.</p>
<p><strong><span style="color: #ff0000;">BARGAIN ALERT</span></strong>: Yes, that means you could buy the Navigator at $149 before next Wednesday and get a free upgrade to the full Suite including the source code. Reading my blog means you get the inside track and your reward is a truly once in a lifetime bargain. Or why not get a 4 pack and save even more!</p>
<p><strong>New Pricing</strong><br />
Currently the Suite + Source is priced at $399 (USD) and the new price with the docking system added will be $499 (USD). Looking at other comparable products on the market I still think this is a reasonable price given the extra flexibility and features it offers.</p>
<p><strong>New Licence Options</strong><br />
Last is a change to provide customers with an upper limit on costs. I hope this will tempt more of the larger outfits to consider buying the Suite for the entire development department. I am introducing Site and Enterprise license options.</p>
<p>A Site license will allow an unlimited number of developers within your organization but limited to one geographic location. An Enterprise license allows for an unlimited number of developers at an unlimited number of locations for your organization. Customers with 16 or more licenses at the moment will be offered the chance to convert to either the Site or Enterprise depending on their licenses requirements.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/08/price-increase-coming/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Navigator Tab Reordering</title>
		<link>http://www.componentfactory.com/blog/2009/08/navigator-tab-reordering/</link>
		<comments>http://www.componentfactory.com/blog/2009/08/navigator-tab-reordering/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 09:27:08 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Docking]]></category>
		<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=530</guid>
		<description><![CDATA[Finally we can now use the mouse to drag a page header into a new position. This feature is a must for the docking system but I am sure it is helpful for those using the Navigator or Workspace standalone controls. It has been requested quite a few times over the last couple of years and [...]]]></description>
			<content:encoded><![CDATA[<p>Finally we can now use the mouse to drag a page header into a new position. This feature is a must for the docking system but I am sure it is helpful for those using the <em>Navigator</em> or <em>Workspace</em> standalone controls. It has been requested quite a few times over the last couple of years and finally it has made it to the top of the to-do list.</p>
<p>The feature works with all the <em>Navigator</em> modes that display elements per-page. So any of the modes that have tabs, ribbon tabs or check buttons per-page can be reordered. Even the <em>Outlook</em> modes have the ability as they contain a set of check buttons at the bottom of the control.</p>
<p>I would show some screenshots but there is no effective way of showing it working. Just wait until the docking beta 2 in a couple of week&#8217;s time and then you can play with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/08/navigator-tab-reordering/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Bits and Bobs</title>
		<link>http://www.componentfactory.com/blog/2009/05/492/</link>
		<comments>http://www.componentfactory.com/blog/2009/05/492/#comments</comments>
		<pubDate>Tue, 26 May 2009 04:32:38 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=492</guid>
		<description><![CDATA[I&#8217;m currently deep in the bowels of adding docking functionality. I&#8217;ve reached the point where you can add/remove/show/hide pages on the edges of a container control. This includes docking them as well as the auto hidden feature where they slide into view when you hover over the tab stubs on the edge. To help me out I needed [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently deep in the bowels of adding docking functionality. I&#8217;ve reached the point where you can add/remove/show/hide pages on the edges of a container control. This includes docking them as well as the auto hidden feature where they slide into view when you hover over the tab stubs on the edge.</p>
<p>To help me out I needed to add some new events, methods and properties to the workspace and navigator controls. I thought you might find some of these handy for y0ur own applications so here is a quick summary&#8230;</p>
<p><strong>KryptonWorkspace<br />
   <span style="color: #333399;">Methods</span><br />
      </strong><em>HideAllPages()<br />
      ShowAllPages()<br />
      FirstVisibleCell()<br />
      NextVisibleCell(&#8230;)</em><em><br />
      PreviousVisibleCell(&#8230;)</em><em><br />
</em>      LastVisibleCell()<em><br />
</em>      IsCellPresent(&#8230;)<br />
      PageForUniqueName(&#8230;)<br />
<em>      CellForUniqueName(&#8230;)</em><br />
<strong>   <span style="color: #333399;">Properties</span><br />
      </strong><em>CellVisibleCount</em><br />
<strong>   <span style="color: #333399;">Events</span></strong><br />
<em>      CellCountChanged<br />
      CellVisibleCountChanged<br />
</em></p>
<p><strong>KryptonNavigator</strong><br />
<strong>   <span style="color: #333399;">Methods</span><br />
      </strong><em>HideAllPages()<br />
      ShowAllPages()</em><br />
<strong>   <span style="color: #333399;">Properties</span><br />
      </strong><em>AllowTabSelect<br />
      Bar.BarLastItemInset<br />
</em><strong>   <span style="color: #333399;">Events</span></strong><br />
<em>      TabCountChanged<br />
      TabVisibleCountChanged<br />
</em><em>      TabMouseHoverStart<br />
</em><em>      TabMouseHoverEnd</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/05/492/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cell Maximize/Restore</title>
		<link>http://www.componentfactory.com/blog/2009/04/cell-maximizerestore/</link>
		<comments>http://www.componentfactory.com/blog/2009/04/cell-maximizerestore/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 13:21:11 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=475</guid>
		<description><![CDATA[KryptonWorkspace has a new property called MaximizedCell that positions a cell to occupy the entire client area of the workspace. This allows the user to concentrate on an area of special interest for a period of time before returning to the previous layout. Here we have a simple workspace with three cells defined. Right clicking on [...]]]></description>
			<content:encoded><![CDATA[<p><em>KryptonWorkspace</em> has a new property called <em>MaximizedCell</em> that positions a cell to occupy the entire client area of the workspace. This allows the user to concentrate on an area of special interest for a period of time before returning to the previous layout. Here we have a simple workspace with three cells defined.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/WsMaxRestore1.gif" alt="" /></p>
<p>Right clicking on the <em>Workstation</em> tab header shows a context menu with a new <em>Maximize</em> option.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/WsMaxRestore2.gif" alt="" /></p>
<p>Selecting the option gives the following maximized layout with all but the maximized cell hidden from view.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/WsMaxRestore3.gif" alt="" /></p>
<p>Right click the tab header again and you will find the <em>Maximize</em> option has changed to become <em>Restore</em> instead. Keyboard users can use the shortcut <em>Ctrl + Shift + M </em>combination to toggle between maximized and restored.</p>
<p>In the examples above you can see a <em>ButtonSpec</em> that I added with appropriate images that allows an easier method of switching without requiring the user to discover the feature by looking at the context menu. This <em>ButtonSpec</em> is not added by the workspace and so if you want the same ability you will need to add it manually just as I did. You can see the new <em>Cell Maximize + Restore</em> sample to discover the few lines of code needed to add this capability.</p>
<p><strong>Double Clicking Tabs<br />
</strong>I&#8217;ve also added a new event to the <em>KryptonNavigator</em> called <em>TabDoubleClicked </em>which is fired whenever the user double clicks with the left mouse button on the tab header. In my new sample this is used to toggle the maximzed state but you could use this as a trigger for any default action you would like to perform.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/04/cell-maximizerestore/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Workspace Persistence</title>
		<link>http://www.componentfactory.com/blog/2009/04/workspace-persistence/</link>
		<comments>http://www.componentfactory.com/blog/2009/04/workspace-persistence/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 14:28:33 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=473</guid>
		<description><![CDATA[I love the KryptonWorkspace. When you combine the flexibility of the KryptonNavigator with drag and drop positioning you have a great control. But a missing feature is the ability to persist the workspace layout so that it can be restored again. Many applications would like to save the layout when closed and reload it again at restart. [...]]]></description>
			<content:encoded><![CDATA[<p>I love the <em>KryptonWorkspace</em>. When you combine the flexibility of the <em>KryptonNavigator</em> with drag and drop positioning you have a great control. But a missing feature is the ability to persist the workspace layout so that it can be restored again. Many applications would like to save the layout when closed and reload it again at restart. Even better would be allowing the user to save multiple layouts so they can quickly switch between them as needed at the click of a button.</p>
<p><strong>Persistence Formats<br />
</strong>Use <em>SaveLayoutToFile </em>and <em>LoadLayoutFromFile</em> in order to persist to/from a file. The actual contents of the file will be an XML document but you can ignore this as modifying the contents risks making it invalid. Alternatively use the <em>SaveLayoutToArray</em> and <em>LoadLayoutFromArray</em> methods to deal with arrays of bytes. An array of bytes makes it easy to save the data into a database and so associate the layout with user&#8217;s details. Or you could convert the array of bytes into a Base64 string and include it into your own applications persistence mechanism.</p>
<p>There are two other formats for those needing even more options. <em>SaveLayoutToXml</em> and <em>LoadLayoutFromXml </em>use references to instances of <em>XmlTextWriter</em> and <em>XmlTextReader</em> classes respectively. So if you are already using these two classes for streaming your own data you can call into these methods and have the layout data inserted into your own XML data. Finally th <em>SaveLayoutToStream</em> and <em>LoadLayoutFromStream</em> are the most flexible and allow you to supply any <em>Stream</em> derived class.</p>
<p><strong>Persisted Information<br />
</strong>The hierarchy of the layout is saved starting with the <em>Root</em> sequence of the control. Each workspace sequence and cell is saved along with the details needed to recreate that item. Each cell can contain any number of individual <em>KryptonPage</em> instances, so details about each page are also saved including most, but not all, of the properties of the page. You should assume that everything about the page is saved except for two types of information. The actual set of child controls that exist on the page are not persisted and neither are the modified values of the <em>State</em> properties. We can see the implications of this by looking at the two likely scenarios for usage.</p>
<p>In the static scenario the set of pages in the workspace are going to be fixed and so every time you run your application the pages are identical. This is the easiest situation to handle.  Reloading is only expected to result in the repositioning of pages into a new layout but not cause the creation or removal of pages. You do not need to write any additional code to handle this scenario and simply calling the <em>Save</em>/<em>Load</em> methods will perform this default behavior. This is because when a page is loaded the control attempts to lookup the named page in the existing set of pages. If found it simply uses that existing page. In this static scenario the loading page will always be found and so reused.</p>
<p>In a dynamic scenario the set of pages could be different every time the application is run. Here you would be creating new pages depending on the users actions. Now when you load a layout you are likely to find that none of the existing pages match those being loaded. When a loading page does not match any of the existing ones then it creates a new page instance and updates the page with the loading data. Once the loading is complete it will remove any pages that are no longer required. This scenario does require you to write some additional code because the child controls on a page need to be created by the developer and are not persisted by the workspace control. Hook into the <em>PageLoading</em> event which is called each time a page is loaded and add the child controls as appropriate for that page (more on this below).</p>
<p><strong>Customization Events</strong><br />
It is very likely you will want to save some additional application specific information along with the automatically generated content. To allow this use the <em>GlobalSaving</em> and <em>GlobalLoading</em> events to persist whatever arbitrary data you like. Use the <em>PageLoading</em> and <em>PageSaving</em> to persist custom data on a per-page basis.</p>
<p>As noted above, the <em>PageLoading</em> is the event used to not just recover custom data but also allow you to modify the page instance before it is used. If you have pages being created then this is where you would add the appropriate child controls and perform whatever data binding etc might be required. You can go even futher than that and assign a new page instance to the returned event data so that your assigned page is used in place of the original. It will probably be easier to create a new page in your event handler than try to customize the page provided by adding the child controls in code. Note you could assign <em>null</em> to the returned event data and so prevent a page being added at all. This is the technique needed to prevent a loading page from being added to the workspace, effectively ensuring the loading page is ignored as no longer required.</p>
<p>Our final event is fired at the end of the loading process and called <em>PagesUnmatched</em>. This event provides you with a list of pages that were present before the load started but were not matched with any loaded page. By default, if you do nothing then those unmatched pages will be deleted from the workspace. Hook this event if you need to examine that list of unmatched pages and instead use code to add them into the workspace again so they are not removed.</p>
<p>I have added a new workspace demo that shows per-page custom data being added to the persisted information so that you can see in code how easy it is.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/04/workspace-persistence/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Beta 2 Released</title>
		<link>http://www.componentfactory.com/blog/2009/03/beta-2-released/</link>
		<comments>http://www.componentfactory.com/blog/2009/03/beta-2-released/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 04:56:28 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=436</guid>
		<description><![CDATA[Krypton 3.5 Beta 2 Released This new beta has quite a few changes based on the feedback from testers of the first version earlier in the week. Most of the changes are in the date time picker and month calendar controls. Here is a full list of changes since the first beta&#8230; KryptonDateTimePicker Text property [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Krypton 3.5 Beta 2 Released</strong></p>
<p>This new beta has quite a few changes based on the feedback from testers of the first version earlier in the week. Most of the changes are in the date time picker and month calendar controls. Here is a full list of changes since the first beta&#8230;</p>
<p><strong>KryptonDateTimePicker</strong></p>
<ul>
<li>Text property now returns the actual displayed text, used to always return an empty string.</li>
<li>MouseWheel now performs the key up/down action of the active text field.</li>
<li>Entering 31 for the day number would not select the correct day.</li>
<li>Up/Down actions on the day would not overflow within the same month.</li>
<li>Mouse down on non-day parts of calendar would dismiss the context menu.</li>
</ul>
<p><strong>KryptonMonthCalendar</strong></p>
<ul>
<li>Drawing was corrupted for many non-English culture settings.</li>
<li>Can now set the background to transparent so parent background shows through.</li>
<li>Changing the DayStyle could crash when using a KryptonPalette.</li>
<li>When number of rows and columns were different mouse selection could crash.</li>
<li>Can now enter 1 or 2 digits for the descriptive month field to change the value.</li>
</ul>
<p><strong>Other</strong></p>
<ul>
<li>Palette upgrade tool now converts versions 12 and below to latest version 13.</li>
<li>Switching Navigator between Outlook modes would cause a crash.</li>
<li>KryptonComboBox would select text when you minimize/restore the form.</li>
</ul>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite3044.zip">Download Beta 2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/03/beta-2-released/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Krypton 3.5 Beta Released</title>
		<link>http://www.componentfactory.com/blog/2009/03/krypton-35-beta-released/</link>
		<comments>http://www.componentfactory.com/blog/2009/03/krypton-35-beta-released/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 05:46:49 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=434</guid>
		<description><![CDATA[You can now download the 3.5 Beta version using the link at the bottom of the post. The actual version number is 3.0.40 which ensures that existing serial keys, which are locked to 3.0.X, will work. New features include the following&#8230; KryptonDateTimePicker KryptonMonthCalendar DateTimePicker for KryptonRibbon MonthCalendar for KryptonContextMenu Per-KryptonPage ButtonSpecs Many bug fixes (consult change [...]]]></description>
			<content:encoded><![CDATA[<p>You can now download the 3.5 Beta version using the link at the bottom of the post. The actual version number is 3.0.40 which ensures that existing serial keys, which are locked to 3.0.X, will work. New features include the following&#8230;</p>
<p>KryptonDateTimePicker<br />
KryptonMonthCalendar<br />
DateTimePicker for KryptonRibbon<br />
MonthCalendar for KryptonContextMenu<br />
Per-KryptonPage ButtonSpecs<br />
Many bug fixes (consult change lists)</p>
<p>I will create a forum so that bugs and other feedback can be logged for the beta specific release.</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite3040.zip">Download Beta</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2009/03/krypton-35-beta-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Collection Editors</title>
		<link>http://www.componentfactory.com/blog/2008/10/collection-editors/</link>
		<comments>http://www.componentfactory.com/blog/2008/10/collection-editors/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 11:16:25 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=401</guid>
		<description><![CDATA[KryptonBreadCrumb Creating the hierarchy of bread crumb items at design is very painful at the moment. You need to edit each set of child items as a flat list of items. So if you need to edit a node several levels down the structure you end up with several collection editors all open at the same time, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>KryptonBreadCrumb</strong></p>
<p>Creating the hierarchy of bread crumb items at design is very painful at the moment. You need to edit each set of child items as a flat list of items. So if you need to edit a node several levels down the structure you end up with several collection editors all open at the same time, one for each level of the structure as you make your way down to the node of interest. Not pretty.</p>
<p>I have now implemented a collection editor that presents all the items in a tree view so that you can see all the nodes at once and easily move them around as needed. Here you can see it in action&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/BreadCrumbEditor.gif" alt="" /></p>
<p> </p>
<p><strong>KryptonWorkspace</strong></p>
<p>The same problem applies to the recently introduced KryptonWorkspace control. It consists of a tree like hierarchy of elements that would benefit from a user friendly editor. In fact it needs the editor more than the bread crumb control because it is much harder to visualize the structure with the workspace. Here is the new improved editing dialog&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/WorkspaceEditor.gif" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2008/10/collection-editors/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Krypton 3.0.6 Released</title>
		<link>http://www.componentfactory.com/blog/2008/10/krypton-306-released/</link>
		<comments>http://www.componentfactory.com/blog/2008/10/krypton-306-released/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 02:53:07 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Ribbon]]></category>
		<category><![CDATA[Krypton Toolkit]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=374</guid>
		<description><![CDATA[This maintenance release has several major bug fixes and a bonus control added to the Toolkit. Download Link for 3.0.6 Major Bug Fixes - Locking/Unlocking computer causes text to disappear. - Text not drawing at all for some Visual Studio projects. - ComboBox drop down not working on some computers. - Cannot edit Image properties with KryptonContextMenu. [...]]]></description>
			<content:encoded><![CDATA[<p>This maintenance release has several major bug fixes and a bonus control added to the Toolkit.</p>
<p><a href="http://www.componentfactory.com/downloads/KryptonSuite306.zip">Download Link for 3.0.6</a></p>
<p><strong>Major Bug Fixes<br />
</strong>- Locking/Unlocking computer causes text to disappear.<br />
- Text not drawing at all for some Visual Studio projects.<br />
- ComboBox drop down not working on some computers.<br />
- Cannot edit Image properties with KryptonContextMenu.<br />
- Design time change of Ribbon.MinimizedMode crashes.<br />
- Removing all Ribbon tabs still draws last tab shown.</p>
<p><strong>Feature Changes</strong><br />
- KryptonDomainUpDown added to the Toolkit.<br />
- KryptonBreadCrumb now has overflow button feature.</p>
<p>If you have a valid subscription to one of the commercial products the you should already have received an email notification with download details. You do not need new serial keys, existing 3.0 keys will work just fine. Also remember to uninstall your current version before installing the new one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2008/10/krypton-306-released/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Rounded Indicators</title>
		<link>http://www.componentfactory.com/blog/2008/08/rounded-indicators/</link>
		<comments>http://www.componentfactory.com/blog/2008/08/rounded-indicators/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 10:34:18 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=340</guid>
		<description><![CDATA[Vista Docking Indicators Just a quick update to show a couple of pictures with a new indicator style. If you are using Visual Studio 2008 under Vista then you will have noticed that the docking indicators are not square anymore. Under Vista it uses rounded indicators so of course we need to provide that style [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Vista Docking Indicators</strong></p>
<p>Just a quick update to show a couple of pictures with a new indicator style. If you are using Visual Studio 2008 under Vista then you will have noticed that the docking indicators are not square anymore. Under Vista it uses rounded indicators so of course we need to provide that style as well. Here we have the mouse hovering over the cell top edge indicator&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DockRounded2.jpg" alt="" /></p>
<p>And over the middle indicator&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DockRounded1.jpg" alt="" /></p>
<p><strong>Intelligent Defaults</strong></p>
<p>All of the built in palettes test for the operating system in order to decide on the appropriate feedback. So on Vista you get rounded and on earlier systems you get the square view as seen in the previous post. It also tests to ensure that your display has more than 8 bits per pixel color.</p>
<p>This is important because when running over remote desktop or terminal services the bandwidth is kept down by using only 256 colors per-pixel. In that case you cannot use the WS_EX_LAYERED setting that is required for the rounded appearance. In order to get a smooth rounded edge you need per-pixel alpha capabilities and so you must use a layered window. With only 256 colors per-pixel your not going to get proper alpha blending and so it is best to fall back to using the docking squares.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2008/08/rounded-indicators/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Docking Indicators</title>
		<link>http://www.componentfactory.com/blog/2008/08/docking-indicators/</link>
		<comments>http://www.componentfactory.com/blog/2008/08/docking-indicators/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 09:24:25 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=338</guid>
		<description><![CDATA[Edge Indicators Instead of using solid blocks to represent drag/drop feedback we now have full docking style indicators. Here you can see the mouse over the right control edge indicator. When the mouse is over the indicator it shows a solid blue rectangle indicating where the drop will occur. Cell Indicators As you move the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Edge Indicators</strong></p>
<p>Instead of using solid blocks to represent drag/drop feedback we now have full docking style indicators. Here you can see the mouse over the right control edge indicator. When the mouse is over the indicator it shows a solid blue rectangle indicating where the drop will occur.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DockInd2.jpg" alt="" /></p>
<p><strong>Cell Indicators<br />
</strong><br />
As you move the mouse over a workspace cell it displays the possible drop options. Here we have the mouse over the center indicator that shows that dropping will cause the page to be transferred into the cell itself.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DockInd3.jpg" alt="" /></p>
<p>Notice that when we hover over the original cell it does not show any center indicator. This is because it makes no sense to drop the page back on the cell it is coming from.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/DockInd1.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2008/08/docking-indicators/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Workspace CompactFlags</title>
		<link>http://www.componentfactory.com/blog/2008/08/workspace-compactflags/</link>
		<comments>http://www.componentfactory.com/blog/2008/08/workspace-compactflags/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 06:28:06 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=336</guid>
		<description><![CDATA[Workspace Hierarchy One unique feature of the KryptonWorkspace control is the hierarchical structure to the layout definition. It means you can easily and quickly create complex layouts for your document area. But this strength is also a potential weakness because moving pages around could cause the structure to become inefficient and leave redundant entries. To prevent [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Workspace Hierarchy</strong></p>
<p>One unique feature of the KryptonWorkspace control is the hierarchical structure to the layout definition. It means you can easily and quickly create complex layouts for your document area. But this strength is also a potential weakness because moving pages around could cause the structure to become inefficient and leave redundant entries.</p>
<p>To prevent this happening there are some flags that indicate how to perform a compacting phase just before the layout of the contents occurs. Each of the compact flags is used to resolve a potential problem. The flags are exposed as the CompactFlags property of the KryptonWorkspace.</p>
<p><strong>CompactFlags.RemoveEmptyCells</strong></p>
<p>Using drag and drop you can transfer a page from one to cell to another. If you remove the last page in the cell you are left with a cell that has no pages. Some applications may want this to happen but many others would prefer the cell be automatically removed as an empty cell is redundant. When this flag is set the compacting phase will search for any cells that have no pages defined and remove them from the hierarchy.</p>
<p><strong>CompactFlags.RemoveEmptySequences</strong></p>
<p>Removing empty cells can result in a workspace sequence existing that has no contents. Once all the cells contained in the sequence have been removed we are left with a redundant sequence. The user will not see the sequence as it is likely to be zero sized but it still exists in the hierarchy. During compacting this flag will search for sequences that have no children and automatically remove them.</p>
<p><strong>CompactFlags.PromoteLeafs</strong></p>
<p>A more subtle scenario involves a sequence that contains just a single child. If a sequence contains just a single child item then that sequence itself is redundant as it only encloses one item. This flag will promote the single child into the place of the sequence and delete the no longer needed sequence.</p>
<p>This situation occurs if you used drag and drop to move pages around. You can end up with a sequence that contains a single sequence child that contains yet another single sequence child and so forth. Although you would not see any visual impact it is clearly inefficient to have long chains of single sequences.</p>
<p><strong>CompactFlags.AtLeastOneVisibleCell</strong></p>
<p>Last but by no means least is a flag that ensures we always have at least one visible cell in the workspace. If the user deletes the last showing page in the last showing cell then the RemoveEmptyCells flag above would remove that last cell and leave the workspace area blank. Some applications require that there is always at least one cell showing even if it has no pages in it. This flag will ensure that is the case.</p>
<p><strong>Layout and Compacting</strong></p>
<p>By default all the above compact flags are set and this ensures that the child hierarchy is always small and efficient. Compacting occurs at the start of control layout activity and so you do not need to worry that it wil be applied whilst you are programmatically changing the structure.  So you can make many changes and the compacting will not interfere until the OnLayout is processed. If you are worried then simply wrap your changes inside the SuspendLayout/ResumeLayout pair of commands.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2008/08/workspace-compactflags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instance dragging</title>
		<link>http://www.componentfactory.com/blog/2008/08/instance-dragging/</link>
		<comments>http://www.componentfactory.com/blog/2008/08/instance-dragging/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 06:28:05 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Navigator]]></category>
		<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=334</guid>
		<description><![CDATA[Instance Dragging The previous post showed that you can drag pages around the KryptonWorkspace control in order to change the layout of the workspace area. We now need to extend this another level because in the real world you may want to drag pages between different control instances. As the KryptonNavigator also deals with KryptonPage [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Instance Dragging</strong></p>
<p>The previous post showed that you can drag pages around the KryptonWorkspace control in order to change the layout of the workspace area. We now need to extend this another level because in the real world you may want to drag pages between different control instances. As the KryptonNavigator also deals with KryptonPage instances it makes sense to allow pages to be dragged to and from Navigator as well as Workspace controls.</p>
<p><strong>Drag Navigator to Workspace</strong></p>
<p>The following images show a Form that has two KryptonNavigator instances at the top and a single KryptonWorkspace control at the bottom. We start by selecting page P1 from the top left Navigator&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/NavWorkDrag1.jpg" alt="" /></p>
<p>And then drag it over to right side of the Workspace&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/NavWorkDrag2.jpg" alt="" /></p>
<p>Dropping creates a new cell inside the Workspace with the page transferred.</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/NavWorkDrag3.jpg" alt="" /></p>
<p><strong>Drag Workspace to Navigator</strong></p>
<p>Moving in the opposite direction is just as easy. Just start dragging P1 from the Workspace and move it over the client area of the Navigator instance&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/NavWorkDrag4.jpg" alt="" /></p>
<p>Notice that the Navigator gives feedback by showing the light blue area over the entire Navigator instance. There is only one thing the Navigator can do with a page drop and that is adding it to the end of its existing set of pages. So the only feedback, no matter where you move the mouse, is to show the entire control as the feedback area. Once you drop the page you get the following result&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/NavWorkDrag5.jpg" alt="" /></p>
<p><strong>Drag Navigator to Navigator<br />
</strong><strong>Drag Workspace to Workspace</strong></p>
<p>You can ignore the Workspace entirely and just transfer pages from one Navigator instance to the other. Just drag P1 and move the mouse over to the other Navigator like so&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/NavWorkDrag6.jpg" alt="" /></p>
<p>So you have the flexibility of dragging pages from/to Navigator /Workspace instances. This is not happening by using the traditional drag and drop mechanism provided in Windows. Starting the drag operation is not using the DoDragDrop call that you might be familiar with. Instead I have created my own class that manages the process.</p>
<p><strong>Targets/Notify/Manager</strong></p>
<p>You need three things to perform drag and drop. First you need a set of potential targerts that can accept the drop and for that we have the IDragTargetProvider interface. Second we need to allow drag operations to be started and we have the IDragPageNotify interface for that. Finally we need an instance that manages the orchestration and so there is a class called DragManager.</p>
<p><strong>IDragTargetProvider</strong></p>
<p>In practice this means that the Navigator and Workspace both implement the IDragTargetProvider interface<br />
because both are capable of being drop targets for page dragging. This public interface could be implemented by any control so you could certainly make your own controls drop targets. The samples for the next release will give a couple of examples showing how to make a simple Button control or TreeView a drop target.</p>
<p><strong>IDragPageNotify</strong></p>
<p>The Navigator and Workspace also expose a property called DragPageNotify that stores an instance of the IDragPageNotify interface. Whenever you start a drag operation it callw back on this provided interface with the relevant mouse events. DragManager implements this interface and so can be passed into the DragPageNotify property of any control that wants to be able to start a drag. Again, the samples will show how to implement this on a Button and TreeView.</p>
<p>So the real story of this post is not that you can easily drag and drop pages between Navigator and Workspace instances, but you can easily integrate your own controls into this dragging mechanism. The above three controls are linked together using the following simple code&#8230;</p>
<p><span style="font-size: x-small;"><span style="font-size: x-small; color: #2b91af;"><span style="font-size: x-small; color: #2b91af;">DragManager</span></span><span style="font-size: x-small;"> dm = </span><span style="font-size: x-small; color: #0000ff;"><span style="font-size: x-small; color: #0000ff;">new</span></span><span style="font-size: x-small;"> </span><span style="font-size: x-small; color: #2b91af;"><span style="font-size: x-small; color: #2b91af;">DragManager</span></span><span style="font-size: x-small;">();<span style="font-size: x-small;"> </span></span><font style="font-size: x-small;" size="2"><span style="font-size: x-small;"><span style="font-size: x-small;"><font style="font-size: x-small;" size="2"></font><font size="2"> </p>
<p></font></span></span></font></span><font style="font-size: x-small;" size="2"> </p>
<p></font><span style="font-size: x-small; color: #008000;"><span style="font-size: x-small; color: #008000;">// Add drop targets<br />
</span></span><span style="font-size: x-small;">dm.DragTargetProviders.Add(kryptonNavigator1);<br />
</span><span style="font-size: x-small;">dm.DragTargetProviders.Add(kryptonNavigator2);<br />
dm.DragTargetProviders.Add(kryptonWorkspace1);<font style="font-size: x-small;" size="2"> </p>
<p></font></span></p>
<p><span style="font-size: x-small; color: #008000;"><span style="font-size: x-small; color: #008000;">// Add drag sources<br />
</span></span><span style="font-size: x-small;">kryptonNavigator1.DragPageNotify = dm;<br />
</span><span style="font-size: x-small;">kryptonNavigator2.DragPageNotify = dm;<br />
kryptonWorkspace1.DragPageNotify = dm;<br />
</span><span style="font-size: x-small;"> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2008/08/instance-dragging/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dragging Pages</title>
		<link>http://www.componentfactory.com/blog/2008/08/dragging-pages/</link>
		<comments>http://www.componentfactory.com/blog/2008/08/dragging-pages/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 08:48:28 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=332</guid>
		<description><![CDATA[Dragging Pages The KryptonWorkspace has been conceived to provide two major features that make it stand out from any other control available. First up is the ability to layout the child Navigator instances in a hierarchical manner with accurate control sizing. A previous post about star sizing has already described this ability in some detail. Second [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Dragging Pages</strong></p>
<p>The KryptonWorkspace has been conceived to provide two major features that make it stand out from any other control available. First up is the ability to layout the child Navigator instances in a hierarchical manner with accurate control sizing. A previous post about star sizing has already described this ability in some detail. Second is the capacity to drag and drop the pages within the workspace to change the organization.</p>
<p><strong>Drag to Control Edges</strong></p>
<p>When you drag a page you have several options about where to drop the page. Your first choice is to drop at one of the four edges of the workspace in order to create a new cell. Here we have a series of three images showing this happening&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/Drag1.jpg" alt="" /><br />
<img src="http://www.componentfactory.com/blog/data/upimages/Drag2.jpg" alt="" /><br />
<img src="http://www.componentfactory.com/blog/data/upimages/Drag3.jpg" alt="" /></p>
<p>The second image showed the light blue overlay that indicates the mouse is over an area that is valid as a drop target. Each of the four control edges has such a hot zone allowing you to drop and create a new cell at that particular edge.</p>
<p><strong>Drag to Cell Edges</strong></p>
<p>Each cell also exposes hot spots on the four inner edges of itself. This will then create a new cell at the position indicated by the light blue indicator overlay. These pictures show a page being dragging to the bottom edge of an existing cell&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/Drag4.jpg" alt="" /><br />
<img src="http://www.componentfactory.com/blog/data/upimages/Drag5.jpg" alt="" /><br />
<img src="http://www.componentfactory.com/blog/data/upimages/Drag6.jpg" alt="" /></p>
<p><strong>Drag to Transfer</strong></p>
<p>Finally you have the option of moving a page from one cell to another without creating a new cell at all. This simple transfer operation can be seen below&#8230;</p>
<p><img src="http://www.componentfactory.com/blog/data/upimages/Drag7.jpg" alt="" /><br />
<img src="http://www.componentfactory.com/blog/data/upimages/Drag8.jpg" alt="" /><br />
<img src="http://www.componentfactory.com/blog/data/upimages/Drag9.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2008/08/dragging-pages/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Star sizing</title>
		<link>http://www.componentfactory.com/blog/2008/08/star-sizing/</link>
		<comments>http://www.componentfactory.com/blog/2008/08/star-sizing/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 10:38:39 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=330</guid>
		<description><![CDATA[Specifying cell sizing How do you specify the size of a KryptonWorkspace cell? It sounds trivial and the automatic answer would be to use a pixel value but this alone does not actually work. If you set a constant value then it implies you want the size to be fixed. Maybe some of your cells [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Specifying cell sizing</strong></p>
<p>How do you specify the size of a <em>KryptonWorkspace</em> cell? It sounds trivial and the automatic answer would be to use a pixel value but this alone does not actually work. If you set a constant value then it implies you want the size to be fixed. Maybe some of your cells should be fixed in size and so specifying the pixel value is adequate but what about other cells that change in size according to the space available?</p>
<p>The simplest example is an instance of the <em>Workspace</em> that has a single cell. With a single cell you would expect it to occupy the entire area no matter how the user resizes the control. If you specify the size in pixels then you automatically fail. Instead I have copied the star sizing technique that is used by the grid control in WPF.</p>
<p><strong>Star sizing</strong></p>
<p>Star sizing allows you to add an asterisk to the end of the size value if you want the size to be proportional to the remaining space available. Here we have two cells that each have a width defined as &#8217;1*&#8217;.</p>
<p><img class="alignnone" title="Star Sizing" src="http://www.componentfactory.com/blog/data/upimages/Star1.jpg" alt="" /></p>
<p>The available width is first allocated to whatever fixed size cells are defined. We have none and so the entire width is then allocated to the cells with stars defined. The total number of stars is 2 and so each cell gets half the available width as they each have half the number of total stars. As we expand the window we get the following change in appearance&#8230;</p>
<p><img class="alignnone" title="Star Sizing" src="http://www.componentfactory.com/blog/data/upimages/Star2.jpg" alt="" /></p>
<p>Both still get half the total width. We now update the first cell to have a value of &#8217;3*&#8217; and see what happens&#8230;</p>
<p><img class="alignnone" title="Star Sizing" src="http://www.componentfactory.com/blog/data/upimages/Star3.jpg" alt="" /></p>
<p>The total number of stars is 4 and so the first is given 3/4 of the space and the second cell 1/4 of the space. Using stars makes it very easy for you to indicate the relative proportions of each cell. These examples only show the width changing but the height works in the same way for sequences that are arranged in the vertical direction.</p>
<p><strong>Fixed and Proportional</strong></p>
<p>Most real world scenarios will likely include fixed as well as proportional cells. To show this we define three cells with widths of &#8217;100&#8242;, &#8217;1*&#8217; and &#8217;1*&#8217; respectively. This is how it looks&#8230;</p>
<p><img class="alignnone" title="Star Sizing" src="http://www.componentfactory.com/blog/data/upimages/StarFixed1.jpg" alt="" /></p>
<p>The first cell is fixed in width and so allocated the full 100 pixels with the remaining space split evenly between the other two cells. If we expand the window we get the following&#8230;</p>
<p><img class="alignnone" title="Star Sizing" src="http://www.componentfactory.com/blog/data/upimages/StarFixed2.jpg" alt="" /></p>
<p>As expected the first cell stays the same and the others split up the larger space between themselves. Now let&#8217;s change the last cells width to be &#8217;4*&#8217; and see the change&#8230;</p>
<p><img class="alignnone" title="Star Sizing" src="http://www.componentfactory.com/blog/data/upimages/StarFixed3.jpg" alt="" /></p>
<p>Our last cells is taking up 4/5 of the remainder and the second cell just 1/5. Shrinking the window changes the appearance like this&#8230;</p>
<p><img class="alignnone" title="Star Sizing" src="http://www.componentfactory.com/blog/data/upimages/StarFixed4.jpg" alt="" /></p>
<p>The combination of fixed and proportional sizing gives the flexibility you need to construct just about any scenario you are likely to need. When you use the splitter to change the sizing it will automatically update the star and fixed sizes correctly. Calling the size fixed only refers to a fixed layout and does not mean the users cannot change the size using the splitter.</p>
<p><strong>Minimum and Maximum</strong></p>
<p>Each cell has the standard control properties of <em>MinimumSize</em> and <em>MaximumSize</em>. These properties are correctly honored when laying out cells and deciding how much space to allocate. So if you specify a maximum width of 200 pixels for a cell that is using star sizing it will enforce that setting. As your window gets bigger each star cell gets bigger and bigger except that particular cell which will stop growing at the 200 pixel mark leaving the other star cells to grow instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2008/08/star-sizing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Krypton Workspace</title>
		<link>http://www.componentfactory.com/blog/2008/08/krypton-workspace/</link>
		<comments>http://www.componentfactory.com/blog/2008/08/krypton-workspace/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 05:34:00 +0000</pubDate>
		<dc:creator>Phil Wright</dc:creator>
				<category><![CDATA[Krypton Workspace]]></category>

		<guid isPermaLink="false">http://www.componentfactory.com/blog/?p=323</guid>
		<description><![CDATA[Not only am I back from holiday but I there is good news on the broken hand. The cast is off and I&#8217;m back into coding mode! Four months is a long time to be away from the coding coal face and I am looking forward to some serious coding sessions with late night deliveries of [...]]]></description>
			<content:encoded><![CDATA[<p>Not only am I back from holiday but I there is good news on the broken hand. The cast is off and I&#8217;m back into coding mode! Four months is a long time to be away from the coding coal face and I am looking forward to some serious coding sessions with late night deliveries of pepperoni pizza. So what am I going to be working on?</p>
<p><strong>Krypton Workspace</strong></p>
<p>I have just started on a completely new component called Krypton Workspace. If you&#8217;ve been following the blog and forums you will know that my intention is to add a docking system to the Krypton suite of components. But in order to add docking windows I need the Workspace component.</p>
<p>This component will be the building block that is used inside the client area of floating windows as well as docked windows at the edge of a Form. Rather than reserve the control for exclusive use inside the docking windows it will also be available as a standalone control. I imagine it will be invaluable as the filler that appears as the main Form content. Think of it as the Visual Studio document editing area but with a little added Kryptonite!</p>
<p><strong>KryptonWorkspaceCell</strong></p>
<p>The KryptonWorkspace has a property called Children that represents the root collection of items for display. Each KryptonWorkspaceCell instance you place inside this will appear as a Navigator instance in the client area of the control. In fact the KryptonWorkspaceCell class is derived from KryptonNavigator. Here you can see the effect of adding three cell instances, one at a time&#8230;</p>
<p><img class="alignnone" title="1 Cell" src="http://www.componentfactory.com/blog/data/upimages/Root1.jpg" alt="" /></p>
<p><img class="alignnone" title="2 Cells" src="http://www.componentfactory.com/blog/data/upimages/Root2.jpg" alt="" /></p>
<p><img class="alignnone" title="3 Cells" src="http://www.componentfactory.com/blog/data/upimages/Root3.jpg" alt="" /></p>
<p> <br />
<strong>KryptonWorkspaceSequence</strong></p>
<p>The Children collection is an instance of the KryptonWorkspaceSequence class and allows any number of child elements to be added. By default the sequence direction for layout is horizontal but you can easily switch this to vertical by updating the Orientation property. Unlike Visual Studio you are not restricted to having entries in a single direction. You can place sequence instances inside another sequence. This allows any depth of hierarchy to be created&#8230;</p>
<p><img class="alignnone" title="Cell Hierarchy" src="http://www.componentfactory.com/blog/data/upimages/Root7.jpg" alt="" /></p>
<p>The structure used to create this arrangement is very simple&#8230;<br />
<code><br />
KryptonWorkspace.Children<br />
...KryptonWorkspaceCell      (1,2)<br />
...KryptonWorkspaceSequence  (Vertical)<br />
......KryptonWorkspaceCell      (T,Y)<br />
......KryptonWorkspaceCell      (Horizontal)<br />
.........KryptonWorkspaceCell      (Q,W)<br />
.........KryptonWorkspaceCell      (E,R)<br />
......KryptonWorkspaceCell      (U, I)<br />
</code><br />
As each individual cell is really just a Navigator, with some extra properties; you can alter each cell with the full flexibility of the Navigator. You could change its mode so it looks like a simple panel or have the full Outlook functionality. </p>
<p>All of the above examples have used the default sizing which is to give each item an equal amount of the available space. So as you make the window bigger all the cells get bigger as well. My next task is to add more control over the sizing so that you can actually use it in real world scenarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.componentfactory.com/blog/2008/08/krypton-workspace/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

