WPF Controls 2017.1 Beta Testers Requested

by Avatar Bill Henning (Actipro) - 6 comments
Tuesday, January 31, 2017 at 6:48pm

PostBannerWPFControlsDevNotes

Hey everyone, we've been working very diligently on the 2017.1 version of our WPF controls for the past several months and a public beta is almost ready.  We'd love as many customers as possible to participate in the beta.  First, let's give an overview of what's new in the 2017.1 version.

Editors Reimagined

In the 2017.1 version, we reimplemented all Editors controls to be faster and more lightweight in terms of elements/bindings, and to use a common codebase with the Universal Windows Editors product.  The new designs are better optimized for use in large quantities such as within data grids or property grids.

Every new edit box control has more fine-grained control over the step values.  Now a native TextBox control is used for input, which allows for more free-form editing, IME input, and better UIA support.

BrushEditBoxOpened

New and improved drop-down pickers have been designed for each edit box.  The pickers are optimized for mouse, pen, and touch-based entry.  The screenshot above shows the BrushEditBox and the new BrushPicker drop-down control.  Altering any edit box's drop-down is simply a matter of providing an alternate Style for its picker control.

TimeEditBoxOpened

New edit boxes have been added for the Byte, Int16, and Single numeric types, along with dedicated date-only (DateEditBox) and time-only (TimeEditBox seen above) variations of DateTimeEditBox.

Tree Controls Added

Our customers have requested custom tree controls from us for a while now and we delivered in this version.  We now offer a new TreeListBox control that is a single column tree similar to a native TreeView but optimized for MVVM usage, virtualization, and speed.  It supports nearly all of the advanced features you'll find in a tree control like the Visual Studio Solution Explorer tree.

TreeListViewColumnReordering

We also offer a new TreeListView control that is built upon the TreeListBox control but displays multiple columns similar to a ListView.  Each column supports its own distinct user interface via data templates.

Both of these controls are packaged in a new Grids product.

PropertyGrid Reimagined

While the PropertyGrid control found in our 2016.1 and earlier versions was very feature-rich, its performance sometimes left much to be desired and customization via property editors wasn't very straightforward.

PropertyGridIntro

In the 2017.1 version, PropertyGrid has been rewritten from scratch and constructed around the foundation provided by the new TreeListBox and TreeListView controls.  It's now lightning fast and loads complex objects (like the properties of itself) almost instantly.  A lot of this is due to simplification of the internal object model, use of virtualization techniques, and fewer overall UI elements.  You'll definitely notice the speed increase.

The core object model used to track properties and categories has been improved and creating custom property editors is much more straightforward now.

The new PropertyGrid is part of the Grids product as well.

Beta Testers Wanted

If you'd like to help us beta test the product, please write our support address and let us know your existing 2016.1 license information.  We will notify you as soon as the public beta is ready and will send you a 2017.1 license if your subscription is still active. 

The code for the beta is near complete and should be pretty stable.  We have a full array of samples and documentation has been completely updated, including conversion notes.

We also will be chatting about the beta in our Slack channels so please join if you have Slack.

Universal Windows Controls 2016.1 Released

by Avatar Bill Henning (Actipro)
Tuesday, February 9, 2016 at 3:35pm

BlogPostBannerUniversal.2016.1.0302

We're pleased to announce that our Universal Windows controls have officially been released and are ready for use in your Windows 10 apps!  Download a free evaluation today and start building your apps with them.

Let's take a quick glimpse at some of the samples that ship with the product and show off the controls:

ChartsBaseballStatsThumbnail   EditorsColorEditBoxThumbnail

MicroChartsCallCenterThumbnail   SyntaxEditorHtmlEditorThumbnail

EditorsDateTimeEditBoxThumbnail   MicroChartsStockReportThumbnail

ViewsTaskPlanningThumbnail   ChartsFinancialDashboardThumbnail

The focus of this first release was to port our older WinRT XAML controls up to the Universal Windows platform.  Look for plenty more updates and controls added in the future.

TaskLearnMore TaskDownload TaskBuyNow

WPF, Silverlight, and WinRT/XAML v2015.1 Released

by Avatar Bill Henning (Actipro)
Friday, April 3, 2015 at 2:31am

BlogPostBanner20151

The 2015.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 large detailed list of enhancements and updates, including many items not listed below:

ProductHeadingWinRTBarCodes

Our Bar Codes product has been ported to the WinRT XAML platform.  This product, which already exists on WPF and Silverlight, allows your apps to render vector-based bar codes using many common 2D and linear bar code symbologies.

BarCodes

A full set of demos and QuickStarts are included to help you get going.

ProductHeadingWPFDocking

The interop assembly that makes it easy to use Docking/MDI with the Prism framework has been updated to reference the latest Prism v5.0.

DockingMetro

We've made numerous layout and performance updates to further improve the product. 

We also have been working hard on building a completely new internal engine for the Docking/MDI product, which will be available sometime later this year.  Keep an eye on our blog for posts detailing the advanced features that are coming with those updates.

ProductHeadingWinRTEditors

All of our edit box controls in the WinRT Editors now have an IsEditable property.  When set to false, the edit box behaves more like a ComboBox, while still retaining the rich popups that make the editors unique.  This is an ideal option for apps whose primary mode of interaction is expected to be touch.

ColorEditBoxNoAlpha

The CornerRadiusEditBox, PointEditBox, RectEditBox, SizeEditBox, and ThicknessEditBox controls have been updated to support text parsing one and/or two number entries where appropriate, which is useful for easy uniform value entry.

ThicknessEditBox

In the above ThicknessEditBox, a 2 is typed and then Enter is pressed.  The value is converted to a uniform thickness of 2.

A ValueChanged event has been added to all edit boxes, which fires when a value change is committed.

Finally, edit box padding has been adjusted so that more content is visible in the same amount of space.

ProductHeadingWPFGauge

A new DigitalGauge.CharacterSegmentThickness property allows for segment thickness adjustments.  This gives you even finer control over the presentation of your digital characters.

DigitGaugeSegmentThickness

We've enhanced the 'Linear Gauge Rolling Scale' QuickStart with a new infinite rolling scale example for navigation headings.

HeadingGauge

ProductHeadingGenericSyntaxEditor

The EditorSearchView control now supports an optional "Find All" button.

EditorSearchView

The RTF export logic has been updated to support extended ASCII characters.

The free CSS language definition now supports the syntax highlighting of media queries.

We've dramatically improved the speed of large completion list display.

Several other performance improvements have been made, such as optimized the scenarios for which the TokenTagger raises its TagsChanged event, and refining of the automatic outlining update logic.

In the WinRT version, we added the SyntaxEditor.AreSelectionGrippersEnabled property, which determines whether the selection grippers show after touch within a view.

.NET Languages Add-on

The C# parser has been improved to recover better when encountering open block statements so that its AST node structure remains better in tact.

DotNetPropertyAccessor

The IntelliPrompt quick info for properties now includes accessors, making it possible to see whether a property is read-only.

Python Language Add-on

The Python language has received an enormous amount of updates, that in sum really improve the entire automated IntelliPrompt feature set.

PythonAddon

Check out all these enhancements:

  • Added IntelliPrompt for private members and updated the completion list to have Public and All filter tabs.
  • Added reflection data for private methods/fields of built-in primitive types.
  • Added IntelliPrompt for built-in exception types.
  • Improved IntelliPrompt for numerous built-in modules.
  • Greatly improved IntelliPrompt for package and module imports.
  • Improved IntelliPrompt for function parameters by examining available assert statement isinstance calls.
  • Added IntelliPrompt for static fields on classes.
  • Improved the resolution of base types for classes.
  • Added the optional IResolver.UnknownReturnTypeReferenceCallback callback that can be used to provide return type references for unknown types.
  • Updated the resolver to recognize where 'cls()' in a class method can create a new instance of the related class.
  • Updated the IntelliPrompt completion list to filter unmatched items.
  • Updated the IntelliPrompt docstring display to retain presentation of line feeds.

ProductHeadingGenericViews

The Views product has a new TaskBoard control added, available in all three (WPF, Silverlight, and WinRT) platforms.  TaskBoard can be used to create a board of reorderable columns and cards.  All of the drags use smooth animations to give you the feel that you are really interacting with the object.

RepairShopScheduling

The first full-source sample that comes with the control is a Repair Shop Scheduling demo, which shows how a TaskBoard can be used to interactively schedule work to resources, such as employees. TaskBoard excels at providing a visual way of representing work/tasks (displayed as cards) within a queue of some sort (displayed as a column).

PageBannerDefault

The second sample is a Task Planning demo, which shows how a TaskBoard can visually organize a project's tasks.

ProductHeadingGenericShared

We've added another new primitive SemiEllipse shape, which renders half of an ellipse.

SemiEllipseShape

The existing Triangle shape has a new IsClosed property that when set to false will create a triangle with only two of the sides rendered.

TriangleShape

Finally, in the WPF Shared Library, we added GradientBrushSlider.CanAddStops and CanRemoveStops properties that determine whether stops can be added and removed from a GradientBrushSlider.

TaskDownload TaskLiveDemo TaskBuyNow

WPF, Silverlight, and WinRT/XAML v2014.2 Maintenance Releases

by Avatar Bill Henning (Actipro)
Wednesday, December 17, 2014 at 10:55am

20142MaintReleaseBlogPostBanner

New maintenance of the 2014.2 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:

ProductHeadingGenericEditors

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.

CountryComboBox

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

ProductHeadingGenericPropertyGrid

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.

PropertyGridCustomFactorySample

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

ProductHeadingGenericRibbon

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.

RibbonContextualTabs

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.

ProductHeadingGenericSyntaxEditor

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.

SyntaxEditorReadOnlyRegion

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)

SyntaxEditorCloseTagCompletion

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.

ProductHeadingGenericShared

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.

ZigZag2

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

TaskDownload TaskLiveDemo TaskBuyNow

Editors for WinRT - DateTimeEditBox

by Avatar Bill Henning (Actipro)
Friday, September 19, 2014 at 8:32am

PostBannerWinRTControlsDevNotes

In recent posts, we've shown off some of our new edit box controls for WinRT (Windows Store and Windows Phone apps).  We saw our DateEditBox, which is used for date input.  And then we saw our TimeEditBox, which is used for time input.  We also have a DateTimeEditBox, which can edit a date and time in the same control.  That's what we'll show in today's post.

Windows Store Variant

The DateTimeEditBox control is used to input a DateTime value, and uses a DateTimePicker control in its popup.

DateTimeEditBoxOpened

Edit boxes work great with a keyboard.  When the edit box is focused, values can be directly typed in.  Type in "9/9/14 10am", "09/09/2014 10:00", "2014-09-09 10AM", etc. and press Enter.  Any of those will commit the same date/time value.  You can also move the caret to one of the date/time components (month, day, year, hour, minute, second, AM/PM) and use keyboard arrow keys, PgUp/PgDn, or the mouse wheel to increment values.  Best of all, pressing the left/right arrow keys will instantly jump between the various "parts" (components) of the edit box value and select the part's text.

The date/time value can be displayed in any desired standard or custom format.  By default it will use the current culture's default date/time format.

If the user doesn't have a keyboard, mouse or touch can be used to display the popup.  The popup contains a HorizontalListBox at the top that switches between DatePicker and TimePicker controls.  These two pickers allow for easy mouse/touch selection of dates and times.

Compare to Native WinRT DatePicker and TimePicker

Most competitors have either made date and time pickers that show a large Windows Phone-like spinning selectors, or have gone with the multiple ComboBox approach like these native WinRT DatePicker and TimePicker controls do:

NativeDatePicker

TimePicker

Neither of those control types are ideal for WinRT apps that can potentially be run on large desktops with keyboards.  Compare the usability of the above to our single control:

DateTimeEditBoxClosed

Windows Phone Variant

Just like our other edit boxes, this edit box will render itself like a button when used on Windows Phone.  Tapping the button shows a full screen picker (same as above) where the date value can be selected.

Summary

This post shows how an DateTimeEditBox control can accept date and time input in a single control within a Windows Store or Windows Phone app.  Download our WinRT/XAML Controls to check it out, along with our other beautiful and functional editor controls!

TaskDownload TaskLiveDemo TaskBuyNow