ISO 3166-1 Alpha-3 Codes Added (WPF, WinRT only)

The Country class, which contains ISO country data and is utilized by our CountryComboBox control, now also includes the 3-character alpha code data for each country.

This is in addition to the existing data of 2-character alpha code and name.

Handling of Root Objects Improved (WPF only)

We've improved how the PropertyGrid handles properties on the root SelectedObjects that have a custom type converter.

Handling of Immutables Improved (WPF only)

We've also improved support for handling immutable objects and determining how to interact with their properties.

Custom Factory Sample Updated (WPF only)

The Custom Factory sample has been updated to show a property with a non-string type.

This is a great example of showing how to implement a custom data factory and merge properties from various object sources.

Backstage Tab Navigation Improved (WPF only)

We've improved keyboard navigation in the TaskTabControl control, which is generally used within Backstage tabs.

Contextual Tab Layout Refined (WPF only)

The logic for the sizing of contextual tab groups and their tabs always has had some minor issues when resizing the containing window to be thinner. The issue didn't often manifest itself unless multiple contextual tab groups were displayed.

We spent a while tracking these issues down and fixing them so that all layout sizing is now perfect, as seen in the screenshot above.

Read-Only Regions Added

We've added support for read-only regions of text via the new IReadOnlyRegionTag tag. This feature has been highly requested by customers, so we're happy to deliver it.

There is a ReadOnlyRegionTag implementation class that supports classification so that read-only regions can be rendered with an alternate background, such as gray in the screenshot above. A new Read-Only Regions QuickStart that demos the new features is now in the Sample Browser.

Move Selected Lines Up/Down Commands

Another highly-requested set of commands for moving the selected lines up (via Alt+Up) and down (via Alt+Down) have been added. The SDI Editor demo's menu has been updated to show off the new editor commands.

IntelliPrompt Completion Performance Enhancements

We did a lot of performance profiling related to IntelliPrompt completion lists and we able to make numerous performance enhancements in the areas of item matching and filtering. These enhancements will really help performance when displaying large completion lists.

Drag and Dropped Text Reselection Option Added (WPF only)

A SyntaxEditor.IsDragDropTextReselectEnabled property has been added that can be set to false to prevent reselection of dropped text.

Data Binding Change Scroll Behavior

Views have been updated so that text changes from a data bound source (such as view model) don't scroll the view back to the first line on each update.

Line Commenter Updated

The line commenter has been updated to improve how line comment and uncomment features affect selection. The logic that gets activated by the LineBasedLineCommenter.CanCommentEmptyLines property also has been improved.

Bi-Di Text Caret Movement (WPF only)

We've made several improvements to caret movement when editing bi-directional text.

Better Separation of UI/Document Models

All of the event ties between the UI and document models have been changed to use weak events.

.NET Languages Add-on

The ability to resolve references to nested types has been improved.

Web Languages Add-on

A completion item for closing the nearest open ancestor element, if any, has been added. (WPF only)

Ctrl+Space after an end tag start delimiter will also auto-complete the matching start tag's name. (WPF only)

We've also improved the editing experience when typing to not affect outlining nodes as much.

Wave and ZigZag Shapes Added

New primitive shapes have been added that can be used to create some interesting user interface elements in your apps. The Wave shape renders a wavy line. The ZigZag shape renders a zig-zag line.

The Shapes QuickStart has been updated with examples showing usage of the new shapes.

In the 2014.2 versions of our controls for the WPF, Silverlight, and WinRT/XAML platforms we've been adding several new shape controls to our Shared Library that can be very handy in setting up unique interfaces in your apps.

Yesterday's post examined the new Triangle shape. For today's post, we'll take a look at a new ZigZag shape that is coming in the next 2014.2 maintenance release.

Introduction

The zig-zag shape renders straight lines that cross from one edge of the shape to the other, and back again. The apex side and the number of apexes to render can be specified. It's also possible to set whether the "inside" (fill) of the shape is inverted, or moved to the other side of the apexes.

Standard fill and stroke properties can be used to give the shape varied appearances. The example on the right above is particularly interesting because it shows how an "inverted" zig-zag provides the left side of the red ribbon. It is aligned next to a rectangle (behind the "New!") text, which allows it to generate a complex composited shape.

Advanced Usage

Zig-zag shapes are great for use when content requires a separator.

Instead of always using a linear horizontal or vertical rule to separate content, the zig-zag shape adds some variety to the user interface.

Summary

Although shapes like zig-zags are small primitive controls, they can be very helpful in creating modern interesting user interfaces that don't rely purely on squares and rectangles.

You will be able to use our ZigZag class once the next maintenance releases of our 2014.2 WPF, Silverlight, and WinRT/XAML controls are published.

In the 2014.2 versions of our controls for the WPF, Silverlight, and WinRT/XAML platforms we added several new shape controls to our Shared Library that can be very handy in setting up unique interfaces in your apps.

For this post, we'll take a look at a new Triangle shape. Incidentally this shape is used in the MicroTrendIndicator control we recently added to our Micro Charts controls.

Introduction

The triangle shape is a basic triangle that will fill the area you give it. You use an enumeration to set which side the apex (point) of the triangle is on.

Standard fill and stroke properties can be used to give the shape varied appearances.

Advanced Usage

While a triangle shape standalone might not be very interesting, when it's combined seamlessly into other UI, it can make for some very nice presentations.

In this usage scenario, we use the triangle shape to help build a touch-friendly sort of breadcrumb control.

Here's another breadcrumb usage scenario but in this case, a smaller centered triangle is used to divide the items.

Summary

Although shapes like triangles are small primitive controls, they can be very helpful in creating modern interesting user interfaces that don't rely purely on squares and rectangles.

You can use our Triangle class today by downloading the latest versions of our WPF, Silverlight, and WinRT/XAML controls.

Our WPF Docking/MDI product, which provides docking tool window and multiple document interface functionality for WPF applications, is already about the most polished and full-featured product of its type on the market for the WPF platform.

Looking for Your Valued Feedback

As great of a product as it is, there are a few areas we are possibly looking to improve and make the product even better. Some of this may involve a refactoring of a lot of internal code, and as such, we wanted to come to you our users and get some feedback on what improvements you would like to see made.

The feedback could be anything from simple UI and docking functionality ideas to suggestions on improving interaction with our API. For instance, perhaps you would like to see "pin" buttons added to tabbed documents, which is a newer feature found in Visual Studio 2013.

We would love to hear what you would like to see implemented in our WPF Docking/MDI product that isn't already in place today.

Please send your comments and thoughts to our support address with as much detail as possible and screenshots/mockups where appropriate.