Last week at Microsoft TechEd, two new controls were added to our NetAdvantage for WPF and NetAdvantage for Silverlight products in the form of a CTP release.  So, chances are, if you weren’t at TechEd you probably didn’t know.  Well now you will, because I am going to tell you all about them.  I must say, these controls are nothing less than AWESOME!


The XamGantt is a WPF and Silverlight cross-platform control that provides Microsoft Project style Gantt functionality. The XamGantt utilizes a Project instance that contains the task, resource and calendar information for the schedule and has a built in scheduling engine supporting many of the features present in Microsoft Project 2010.


Features available in the CTP:

  • A full featured scheduling engine that supports the following features:
    • Manual/Automatically Scheduled Tasks
    • Schedule Project From Start or Finish
    • Task Duration and Format
    • Task Dependencies
    • Task Constraints
    • Deadline
    • % Complete / Progress
    • Critical Path
    • Slack
    • Inactive Tasks
  • Ability to define tasks in an unbound mode or by binding to an arbitrary collection with mapping of the data object properties to the associated ProjectTask properties. Note: In the CTP version, changes to the tasks and collection provided by binding to a collection will not be persisted back to the source collection.
  • Normal, Summary and Milestone tasks
  • Project Summary
  • Indenting and Outdenting Tasks
  • Editing Cells
  • Inserting and Deleting Tasks
  • Task Indicators
  • TimeZone Support
  • Timescales
  • Built In Context Menus
  • Tables
  • Views
  • Loading a Microsoft Project XML file.

Features were working on for 12.2:

  • A collection of the resources (e.g. people) associated with a given project.
  • A collection of calendars for the project that provide the working time and exception information for the project and tasks.
  • The ability to persist the changes made to the tasks back to the source collection used to populate/initialize the tasks.
  • The ability to populate the tables and views from arbitrary collections with mapping of the data object properties to the project related properties.
  • Task ToolTips
  • Customized formatting of the timescale interval display and tooltips
  • Control over which operations are allowed in the UI by the end user.
  • Active Task & Selected Tasks
  • Conflict Resolution


The XamSyntaxEditor is personally the one I am most excited about.   The XamSyntaxEditor is a WPF and Silverlight cross-platform control that can be used to provide a code editing experience similar to Microsoft’s Visual Studio code window.


Features available in the CTP:

  • C# and VB language implementations as well as plain text support.
  • Background and on-demand lexing (tokenization) that allows even very large documents to be displayed extremely quickly.
  • Syntax highlighting that gives visual cues to the user on how the text is being interpreted, e.g. so that comments, keywords and language specific entities can be easily differentiated.
  • Support for multiple font styles (i.e. bold, italic etc.) in a single document.
  • Support for unlimited undo/redo of changes.
  • Access to the document’s text via thread-safe immutable snapshots so that longer running operations can be performed on a separate thread without having to worry about dealing with any changes made to the document during the process. This includes methods for easily translating the results of a search to the current snapshot of the document (thru the SnapshotPoint and SnapshotSpan’s TranslateTo methods).
  • The ability for the user to split the view (either vertically or horizontally).
  • Methods to support find and replace.
  • Clipboard support.
  • Load/save methods to/from files or streams on TextDocument.
  • Optional line number margin.
  • Custom margins on top, bottom, left and/or right.
  • Editing support.
  • Support for read-only documents

Features were working on for 12.2:

  • Parsing (to expose a syntax tree)
  • Error reporting, to give the user visual cues that the text doesn’t conform to the syntax rules of the language.
  • Custom language support.
  • Code folding. This allows certain ranges of lines to be optionally collapsed based on the rules of the language, e.g. in C# namespaces, classes, structures, interfaces, and regions would display an indicator in the left margin that when clicked would collapse/expand the block of lines that make up these entities.
  • LineChange margin.
  • Indenting/outdenting of selected lines and Visual Studio-like indenting of new lines.
  • Drag drop support (internally within the document as well as externally, i.e. dragging a file and dropping it on the editor).
  • Type ahead event based support (e.g. like Microsoft’s Intellisense)

So how do you get these kick-ass controls?  Easy, you simply download them from your account.  I’ll save you some time and provide you with some quick links.  You can thank me later.

Download the XamGantt and XamSyntaxEditor CTP for Silverlight

Download the XamGantt and XamSyntaxEditor CTP for WPF

Each platform comes with a samples browser showing you simplistic usage of these controls as well as a more complex example for the XamSyntaxEditor called the XamSyntaxEditorStudio.  Now, pay no attention to the massive code-behind in the sample app.  We needed something fast and this is what we were given.  Just concentrate on the functionality.  I am working a on MVVM friendly version that I will post later.  Heck, maybe I will just blog the construction of it.

I would like to mention that the features listed above are subject to change before the official release.  This means you can’t get mad at me if a feature is listed but doesn’t make it.  You also need to have the latest May 2012 Service Release installed in order to use the new XamGantt and XamSyntaxEditor controls.

Stay tuned for more posts that are specific to each control and it’s usage.  I will probably even create a few videos as well.

I want your feedback on these controls.  Download them. Use them. Tell me what you think.

Brian Lagunas

View all posts

Follow Me

Follow me on Twitter, subscribe to my YouTube channel, and watch me stream live on Twitch.