Tweets by @Actipro
Please take some time to learn more about us and our product offerings.
In this quarter, we published a very large 2014.1 version maintenance release of our WPF, Silverlight, and WinRT/XAML controls. These versions included several new controls and some big feature enhancements for our existing controls. Check out the release posts for more detail.
We are in the middle of several large projects right now. The first is one that we recently mentioned, which is a full advanced language add-on for the Python language. As mentioned in this post, the language will support both the Python v2.x and v3.x syntax. It will have full parsing, syntax error reporting, code outlining, smart indent, and more. We also have begun working on automated IntelliPrompt features, which we will post about in the coming weeks.
Another area we have invested a good amount of time in recently is a new control product offering for WinRT, one that already has a counterpart in our WPF controls. Can you guess which one? That being said, the designs we've come up with include some new unique interfaces that are very friendly for all forms of input. We will delve more into this in future blog posts too, once we are a bit closer to ready for release. We're really excited to reveal these controls.
And of course we are continuing to enhance and update our existing controls, along with designing some new controls, as we start collecting updates for the future 2014.2 versions.
In today's post I'd like to formally announce that a new Python language add-on is coming to SyntaxEditor (WPF, Silverlight, and WinRT/XAML platforms) in its 2014.2 version.
Python is a very popular programming language that uses indenting to create blocks of code (as opposed to curly braces as in languages like C), and attempts to allow users to write code in fewer lines than is possible in other languages. Python has a standard library of API features that has grown very large over time.
These days, Python code comes in two flavors: v2.x syntax and v3.x syntax. Unfortunately there are breaking changes between the two syntaxes. But we've got you covered since you can tell our PythonSyntaxLanguage class which version to use and it will parse things accordingly.
Here's a screenshot of the Python language in action within SyntaxEditor:
The first release of the Python language will have these features:
Since this is a brand new language add-on, we would love to get your help beta testing it. If you are a SyntaxEditor customer and would like to assist us in testing the Python language add-on, please contact us at our support email address.
This new Python language add-on will roll out in the 2014.2 version of our WPF, Silverlight, and WinRT/XAML controls.
New maintenance of the 2014.1 versions of our WPF, Silverlight, and WinRT/XAML controls have been released and are now available for download.
Major new features are described below. See the announcement posts for the detailed list of enhancements and updates, including many items not listed below:
XYDoubleAxis, XYDecimalAxis, and XYDateTimeAxis have been updated to auto-calculate tick mark intervals when they aren't specifically set. A new Axis Ticks QuickStart has been added that shows off automatic tick mark interval calculation.
We've improved the rendering speed of data point labels, improved the rendering logic of bar charts, and updated data point labels to use a subtle border so that they don't blend in with surrounding chart objects of the same color.
Data point labels in pointer visibility mode now delay layouts until a pointer event occurs, thereby speeding up initial chart display.
XYChart now will automatically upconvert non-Double numeric type data to Double type so it can display.
ThemedDataGrid has been updated to style the child controls of auto-generated ComboBox and CheckBox columns.
Added the DockSite.IsRaftingWindowSnapToScreenEnabled, which can be set to false to prevent rafting windows from snapping to the closest screen when being displayed.
Overloads to the TabbedMdiHost.TileHorizontally and TileVertically methods have been added that allow for a maximum number of columns/rows. This permits additional tile configurations, such as a single row of tiles.
Updated double-clicks on property names to cycle through standard values if available.
A PropertyGrid.CommitPendingChanges method has been added that forces any pending LostFocus bindings within property editors to update and ensure the data model is current.
Navigable symbols now support hierarchy levels and item indentation. This feature was added to allow XML element hierarchies to be displayed in the NavigableSymbolSelector.
Many minor enhancements have been made, which can be seen in the detailed update list.
A Grammar.AddChildFrom overload was added that allows for specification of a desired child index.
The XML grammar was reimplemented using type-specific AST nodes, thereby reducing overall AST memory usage by an average of 40%. A XmlNavigableSymbolProvider service was added to the XML language that provides contextual element and attribute display in a NavigableSymbolSelector control. The XML and HTML editor demos were updated to showcase the new navigable symbol provider features.
The HorizontalListBox control was added, which allows for selection of items that are arranged horizontally with a uniform width.
The UniformGrid control was added, which is a Panel that can arrange content in a grid where all the cells in the grid have the same size.
The RadialSlider class logic for snapping values has been improved.
The DelegateCommand class has been added, which is an implementation of ICommand that uses delegates.
One great new feature coming in the next build of our Charts product for WPF, Silverlight, and WinRT/XAML is automatic tick calculation when no tick interval is specified.
If you know the range of data that will be displayed in your charts, it often makes sense to specify an exact tick interval. This ensures that the charts render gridlines, ticks, and labels exactly how you intend for them to look.
Our current version of Charts requires you to specify the tick interval, or else ticks won't show up in many cases. We had a lot of feedback from customers that there are many scenarios where they don't want to have to set up the tick intervals ahead of time since the data can often be very dynamic. Our customers asked for tick intervals to be automatically calculated when not specified, and that's what we've done for the next build.
The new feature will examine the minimum and maximum values of your data and determine a proper interval to apply to ticks so that they are visually spaced out in a pleasing way.
Let's have a look at how this works. In this chart, neither axis has a tick interval specified, so the new feature kicks in on both the x-axis and y-axis.
The y-axis has a sales dollar amount and the new logic determined that a major tick interval of $200 should be used. The x-axis' major tick interval was determined to be 5.
Next, we have another similar example, but this chart shows how the feature even works to calculate major tick intervals for dates.
The logic examined the minimum and maximum dates and found a certain number of days to use as the major tick interval.
The new highly-requested chart automatic tick calculation features will be available in the next 2014.1 maintenance releases of our WPF, Silverlight, and WinRT/XAML controls.
Today I'd like announce a great new feature coming to the SyntaxEditor Web Languages Add-on (WPF, Silverlight, and WinRT/XAML versions): a XML navigable symbol provider.
If you are new to SyntaxEditor, you may be wondering what is a navigable symbol provider. Navigable symbol providers allow SyntaxEditor to provide a set of drop-downs above it that indicate the current context of the caret. They also allow an end user to select items in the drop-downs to move the caret directly to the related definition.
Our .NET Languages Add-on's C# and VB languages already support this feature and the two drop-downs above the editor show the current type and member context.
With the addition of this feature to XML, two drop-downs above the editor can show the current element and attribute context. Let's see a screenshot:
In the screen above, the caret is on line 12 in the "id" attribute. The attribute drop-down (top right) properly shows the "id" attribute as context. If we would click the "book" element in that drop-down, the caret would move to the "book" tag's name.
In this screenshot, we have displayed the element drop-down while still on the "book" start tag. It has selected the current element for us and also shows the hierarchy of elements up to the root element ("catalog"). It also shows us the elements that are direct children of the current element. In this case, elements like "author", "title", etc. are the direct children of "book". Any of the items in the drop-down can be clicked and the caret will jump right to that element. In this sense, it provides somewhat of a mini-document outline.
This great new feature will roll out in the upcoming 2014.1 WPF, Silverlight, and WinRT/XAML controls maintenance releases.
Our WPF PropertyGrid control allows you to embed an object editing interface into your applications that can make use of any type of custom editor, including our own powerful WPF Editors controls.
In today's post I wanted to review a new small, but very useful, enhancement coming to PropertyGrid in the next maintenance release: the ability to double click on a name cell and cycle through available standard values.
Let's have a look at how this works.
Here we have a PropertyGrid and you'll notice that the CharacterCasing property has standard values of Normal, Lower, etc.
By double-clicking on the name cell, the value cycles to the next value in the standard values list.
This new feature makes it quick and easy for end users to cycle through standard values without having to show a drop-down list. It will appear in the next maintenance release of our WPF controls.
Yesterday we posted about a UniformGrid panel control that was being added to our WinRT/XAML and Silverlight Shared Libraries. This sort of panel is already available in native WPF so no implementation was necessary there.
In today's post, I'd like to show another new control coming to our WPF, Silverlight, and WinRT/XAML control platforms: HorizontalListBox.
The HorizontalListBox control is… wait for it… a standard ListBox that uses a horizontal layout. In fact it uses a UniformGrid panel with a single row specification to achieve its layout. This has the benefit of ensuring that each item in the list has an equal width.
This sort of design is great for toggle sorts of controls where there are two or more values from which to choose. In multi-selection mode, you can also toggle each item individually.
Let's have a look of the WinRT version:
Here we have a couple HorizontalListBox controls in place. One for selecting gender and one for doing multiple selection of days of the week. Everything is simple and touch-friendly. Any content can be rendered in the list box items as well.
And here is the WPF version:
It's the same exact control and API but here it renders in the current theme (in this case Metro Light) via our WPF Themes infrastructure.
Best of all, since this restyled control simply inherits the native ListBox, you have all the features available to you that come from the base native ListBox control. Our control has some enhancements such as Left/Right arrow key navigation too.
The HorizontalListBox control will be available in the next 2014.1 maintenance releases of our WPF, Silverlight, and WinRT/XAML Shared Libraries, and will be licensed for use by any of our customers of those control platforms.
We've been working on some new controls and while developing one in particular that we'll post about next time, we had a need for a UniformGrid panel. The UniformGrid panel is already available in native WPF, but isn't available in WinRT/XAML or Silverlight.
For the next maintenance releases of our WinRT/XAML and Silverlight controls, we rolled our own UniformGrid that has the same properties as the WPF version, making it easy to reuse code across platforms.
The UniformGrid automatically lays out items in a grid such that the row and column counts are the same, and each item in the panel has the same size.
In this screenshot, the panel has four items in it. Thus a 2x2 grid is created to display them all.
In this screenshot, we have seven items so a larger grid is necessary. A 3x3 grid is used instead.
You also have the option to specify a certain number of rows or columns that should be used.
In this screenshot, we have specified that two columns should be used. The panel therefore creates a 2x4 grid (two columns and four rows). Note that regardless of layout, items always appear in the same size.
You can see that UniformGrid provides for a lot of interesting layout scenarios, especially when you tell it a certain number of rows or columns to use.
The UniformGrid panel will be available in the next maintenance release of our WinRT/XAML and Silverlight Shared Libraries and is licensed for use by any of our customers of those control platforms.
Our next blog post will show off another new control coming to our XAML platforms that makes use of this new panel.
Last year, we created a sample for showing how a hosted Windows Workflow Designer instance could be integrated with Actipro WPF controls within a custom WPF application to provide a very elegant interface for end users.
We have continued enhancing it and here's what it currently looks like:
Our Docking/MDI product is used to provide the tool window and multiple document interface. Our SyntaxEditor code editor control, in single line edit mode, is injected as a custom expression editor. When you combine SyntaxEditor with our .NET Languages Add-on, you are able to have it support powerful IntelliPrompt completion lists. For instance, in the screenshot above, you can see the itemCount variable is showing up in the completion list since it was declared below.
In recent updates, we've:
When you put it all together, it's very easy to integrate Actipro WPF controls with rehosted Windows Workflow Designer instances in your applications. It only takes a few minutes to get up and running, and once you do, the result is well worth the time.
If you rehost the Windows Workflow Designer in your WPF apps and would like our example, please contact us and we'll be happy to share it with you!
For those customers who downloaded either of the prior versions, this update is at the same URL as before.
We are adding a JSON language implementation to the WinForms SyntaxEditor samples for the next maintenance release.
The JSON syntax language has these features:
This new syntax language example will be included in the next WinForms Controls maintenance release.