WPF Studio 2009.2 Released - New controls and features

Announcements Forum

Posted 14 years ago by Actipro Software Support - Cleveland, OH, USA
Avatar
A major new version of WPF Studio is now available. Version 2009.2 adds some great new features to existing controls, some new controls, expanded designer support, and more.

Highlights include:
  • Docking/MDI adds floating document support like what is found in Visual Studio 2010, meaning you can drag documents out to a secondary screen if you wish.
  • Editors adds new AnalogClock, EnumEditBox, and EnumListBox controls. It also updates the DateTimeEditBox to show a clock in the dropdown when appropriate.
  • Navigation adds a new ZoomContentControl that provides a user interface for scrolling large content like pictures, maps, etc.
  • Ribbon adds support for in-ribbon galleries to display multiple rows of items.
  • SyntaxEditor adds new tagging and adornment functionality, which really open up the possibilities of what you can do with the editor. Add custom UIElements anywhere within the text area. Squiggle line support is added and language services are improved.
  • Many products get new QuickStarts and improved documentation.
  • All products get VS 2010 and Blend 3 designer support.

Detailed Update List

Bar Code

  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • Updated all Brush references so that they can all be frozen.

DataGrid

  • Updated all Brush references so that they can all be frozen.
  • Added work around for exception raised when attempting to get DataGridRow when DataGrid is not currently visible.

Docking/MDI

  • BREAK: Added Visual Studio 2010 docking features including floating document windows.
  • BREAK: Removed DockSite.Theme helper property since setting theme at control level should only be done for testing purposes.
  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • Fixed an issue with AutoHideHost.Deactivate where it would not always force the active window to be deactivated.
  • Fixed an issue with the Standard MDI document Style that would raise a FormatException.
  • Updated all Brush references so that they can all be frozen.
  • Fixed an issue where the TabbedMdiHost would activate the last active ToolWindow even when in the auto-hide state.

Editors

  • Added new AnalogClock control for displaying time values.
  • Added new EnumEditBox control for modifying Enum types.
  • Added new EnumListBox control for displaying and selecting values for Enum types.
  • Updated DateTimeEditBox to dynamically change it's default drop-down content based on the current format.
  • Added QuickStarts to demonstrate new AnalogClock, EnumEditBox, and EnumListBox controls.
  • Added component resource keys for default styles for MaskedTextBox, PasswordBox, and TextBox.
  • BREAK: Changed default value of ClipToBounds for MaskedTextBox, PasswordBox, and TextBox from true to false.
  • Condensed theme files where possible for Luna and Office 2007 themes.
  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • Fixed issue with using PartValueCommitTriggers.StringValueChange and a Minimum/Maximum value where the displayed value would not equal the actual value.
  • Updated all Brush references so that they can all be frozen.
  • Fixed issue with very small double values not displaying correctly in certain formats in DoubleEditBox and other controls.
  • Fixed issue when entering negative values in Int32 and Int32Rect editors.
  • Fixed focus issue when selecting date from DateTimeEditBox drop-down.

Gauge

  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • Updated all Brush references so that they can all be frozen.

Navigation

  • Added the new ZoomContentControl that provides a user interface for scrolling large content like pictures, maps, etc.
  • Added the NavigationBar.IsPopupEnabled property, which allows the Popup to be disabled when the NavigationBar is minimized.
  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • BREAK: Removed Breadcrumb.Theme helper property since setting theme at control level should only be done for testing purposes.
  • BREAK: Removed ExpanderBar.Theme helper property since setting theme at control level should only be done for testing purposes.
  • Updated all Brush references so that they can all be frozen.
  • Fixed memory issue in Breadcrumb buttons with using HandoffBehavior.Compose for animations.

PropertyGrid

  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • Fixed issue where property data accessors were getting rooted by dependency properties.
  • Fixed issue where property change notification may not properly hook up to PropertyDescriptors.
  • Updated all Brush references so that they can all be frozen.

Ribbon

  • Added support for multiple RibbonGallery rows based on size of items.
  • Added "Gallery Rows" QuickStart to demonstrate multiple rows in a RibbonGallery.
  • BREAK: Updated all ribbon controls to coerce their default CommandParameter value when a Command is set so that it isn't always necessary to define checkable command parameters for buttons, etc. Ensure your command CanExecute/Executed handlers do a 'try' cast off e.Parameter instead of a direct cast in case the command parameter is coerced before a different parameter type value set in XAML is applied.
  • Updated non-editable ComboBox controls to support display of hint text.
  • Updated the SplitButton to support MenuItemDescription when used in a large menu.
  • Updated Ribbon to better support new TextFormattingMode in .NET 4.0 and updated tab text rendering.
  • BREAK: Changed default value for ContextMenu.Placement from Bottom to MousePoint.
  • BREAK: Changed default value for ContextMenuService.ShowOnDisabled from false to true for Ribbon controls.
  • Updated key tips so that Alt can continue to be held when typing keys.
  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • Fixed a bug where after removing all buttons from the QAT, the customize button could hide in a certain scenario.
  • Fixed a bug where gallery item clicks may not restore focus to interop controls.
  • Fixed a bug where clicking on a disabled menu item could steal mouse capture.
  • Updated ribbon controls so their default command parameter can be properly auto-created.
  • BREAK: Removed RibbonWindow.Theme helper property since setting theme at control level should only be done for testing purposes.
  • Updated all Brush references so that they can all be frozen.

SyntaxEditor

  • Tagging
  • Added complete support for tagging, which is the ability to mark ranges of text with data.
  • Added the ITag and ITagger interfaces, along with the TaggerBase and TaggerKeys classes.
  • Added the TagVersionRange and TagSnapshotRange classes that are used to associate a specific tag with a range of text.
  • Added the CollectionTagger class, which provides a non-virtualized implementation of ITagger.
  • Added the ICodeDocumentTaggerProvider and ITextViewTaggerProvider interface, and CodeDocumentTaggerProvider, TextViewTaggerProvider, and TaggerProviderBase classes.
  • Added the IClassificationTag, ITokenTag, and ISquiggleTag interfaces, and the ClassificationTag, TokenClassificationTag, and SquiggleTag classes.
  • Added the TokenTagger and TokenTaggerProvider classes, used to provide ITokenTag objects based on the language's lexer output.
  • Added the TagsChangedEventArgs class.
  • Added the ITagAggregator interface that can get a tag aggregator from the ICodeDocument and ITextView.CreateTagAggregator methods.
  • Added the ParseErrorTagger class. When it sees ICodeDocument.ParseData that implements IParseErrorProvider, it automatically generates squiggle lines for the errors.
  • Classification
  • Added the IParseError.ClassficationType property, where the type of error can be classified.
  • Added the Warning, CompilerError, SyntaxError, and OtherError properties to the ClassificationTypes class.
  • BREAK: Changed all classification functionality to use the new generic tagging mechanism. See the "Converting to v2009.2" documentation for details on what is needed to support old functionality with the new mechanism.
  • BREAK: Moved the IClassificationType, IClassificationTypeRegistry, and ClassificationTypes types to the ActiproSoftware.Text namespace, and removed the ActiproSoftware.Text.Classification namespace.
  • BREAK: Moved the ClassificationTypes type to the ActiproSoftware.Text.Implementation namespace, and removed the ActiproSoftware.Text.Classification.Implementation namespace.
  • BREAK: Removed all other types related to classification, since tagging replaces them.
  • BREAK: Removed the ITokenClassifierFactory language service. Use the new TokenTaggerProvider service instead.
  • BREAK: In the Olso Dataflow Add-on, use the new DataflowTokenTaggerProvider service in place of the old DataflowClassifierFactory.
  • BREAK: Removed the ICodeDocument.Classifier property.
  • BREAK: Removed the SyntaxEditor.Classifiers property. Use ITagger<IClassificationTag> instances instead, created from language tagger provider services.
  • BREAK: IHighlightingStyleRegistryProvider used to be optionally implemented on IClassifier. Now it is looked for on IClassificationTag instances instead.
  • Updated the Classification QuickStarts to use the new tagging mechanism.
  • Adornments
  • Added complete support for adornments, that are UIElement-based decorations that can be placed and layered in any location within a view.
  • Added the IAdornmentLayer, IAdornment, AdornmentLayerDefinition, AdornmentLayerDefinitions types.
  • Added the ITextView.GetAdornmentLayer method, used to retrieve an adornment layer.
  • Added the IAdornmentManager interface, and AdornmentManagerBase and DecorationAdornmentManagerBase abstract base classes to help manage adornments.
  • Added the IAdornmentManagerProvider interface and AdornmentManagerProvider class.
  • Added functionality to automatically render squiggle lines for any ISquiggleTag range.
  • Added numerous QuickStarts showing tagging and adornment features.
  • Miscellaneous
  • Made major documentation updates, especially in the Language Creation area.
  • Added the SyntaxLanguageDefinitionSerializer.InitializeFromStream and InitializeFromFile methods that allow for an existing ISyntaxLanguage to be initialized from a .langdef file.
  • BREAK: Updated the SyntaxLanguageDefinitionSerializer.LoadXX methods to return an ISyntaxLanguage instead of SyntaxLanguage.
  • Improved language event sink services so they fire for all registered service that implements the event sink, but gives priority to a service specifically registered for the event sink type.
  • BREAK: Changed the ICodeDocument.LanguageChanged event to use the new SyntaxLanguageChangedEventArgs class.
  • Added the ICodeDocumentLifecycleEventSink service.
  • Added the SyntaxEditor.ViewClosed and ViewOpened events.
  • Added the ITextViewLifecycleEventSink service.
  • Added the SyntaxEditor.DocumentLanguageChanged event and related EditorDocumentLanguageChangedEventArgs class.
  • BREAK: Added the TextViewTextAreaLayoutEventArgs class and changed the ITextView.TextAreaLayout event to use that event args.
  • BREAK: Changed the ITextView.VisibleViewLines property to return the new ITextViewLineCollection instead of an array.
  • Added the ITextViewLine.Change property and related TextViewLineChange enumeration.
  • Added the ITextVersionRange interface, which is a text range that is based on a document version and can be translated to other document versions. This is a lightweight tracking alternative to TextSnapshotRange.
  • Added methods to ITextVersion for creating ITextVersionRange objects.
  • Added the PropertyDictionary object, and added the ICodeDocument.Properties and ITextView.Properties properties.
  • Added the SyntaxEditor.UserInterfaceUpdate event, which fires after a brief delay following any document text, parse data, or view selection update, allowing consumers to update the user interface during an idle period.
  • Changed ICompletionProvider and IQuickInfoProvider language services so that multiple services implementing those interfaces can be registered on a language.
  • BREAK: Changed ICompletionProvider and IQuickInfoProvider language services' RequestSession methods to return a boolean indicating whether a session was opened.
  • BREAK: Changed ICompletionProvider and IQuickInfoProvider language services to implement IOrderable.
  • BREAK: Updated the QuickInfoProviderBase constructor to accept a string key and orderings, for IOrderable implementation.
  • Added the abstract CompletionProviderBase class.
  • Updated IntelliPrompt popups to scale with the SyntaxEditor.ZoomLevel (mouse-wheel zooming).
  • Added the SyntaxEditor.MinIntelliPromptZoomLevel and MaxIntelliPromptZoomLevel property to control the min/max zoom level for popups.
  • Added the IServiceLocator.ServiceAdded and ServiceRemoved events.
  • BREAK: Renamed EditorViewMarginNames to EditorViewMarginKeys, and PrinterViewMarginNames to PrinterViewMarginKeys.
  • BREAK: Changed IOrderable's After collection to be a more generic Orderings collection that support before and after specifications. Added the Ordering class and OrderPlacement enumeration.
  • BREAK: Removed the SyntaxLanguageExtensions extension methods for provider and event sink service types since multiple services implementing those interfaces can now be registered. Use the general ISyntaxLanguage Get/Register/Unregister methods instead.
  • Updated the line number margin to reflect the read-only color when the document is read-only, similar to other margins.
  • Updated the Language Designer to support background colors for classification types.
  • Fixed several bugs with text searching.
  • Fixed a bug where mouse selection was enabling selection when SyntaxEditor.SelectionModes were preventing certain modes.
  • Fixed a bug where the mouse wheel didn't always scroll to the last line correctly.
  • Fixed a bug where the ParseRequest.RepeatedRequestPause property wasn't being initialized.
  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • Fixed a bug with block text pasting.
  • Updated all Brush references so that they can all be frozen.

Wizard

  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • Updated all Brush references so that they can all be frozen.

Shared Library

  • Added new mouse wheel gesture and supporting classes.
  • Updated PopupButton to add PopupContent as logical child.
  • Added PopupAnimation property to PopupButton which allows popup animation to be customized.
  • BREAK: Removed AnimatedProgressBar.Theme helper property since setting theme at control level should only be done for testing purposes.
  • BREAK: Removed PopupButton.Theme helper property since setting theme at control level should only be done for testing purposes.
  • BREAK: Updated SpectrumColorPicker such that the SelectedColor property is not set to the InitialColor when the latter is changed.
  • Updated installer to install VS 2010 toolbox entries.
  • Added designer support for Visual Studio 2010 and Expression Blend 3.
  • Renamed Toolbox image resources to support Visual Studio 2008 and 2010.
  • Updated all Brush references so that they can all be frozen.
  • Fixed a bug where selections in the color picker slice could change the slider value.
  • Fixed memory issue in AnimatedProgressBar with using HandoffBehavior.Compose for animations.
  • Fixed a bug with RadioButtonList and access key handling.

About WPF Studio

WPF Studio / WPF Essentials Licensing

You can purchase our WPF controls individually if you wish however you have the option to purchase all of them in the WPF Studio bundle. Purchasing the bundle saves over 60% over purchasing all the WPF controls individually.

The WPF Essential bundle saves over 45% over purchasing its bundled controls separately.

That's some incredible savings!

WPF Studio Benefits

All WPF control licenses automatically include a free subscription for a year of free upgrades to any new versions that are released. At the end of the year, you may renew your license for another year to keep the free upgrade benefits active.

In addition, if you own a WPF Studio license, you are automatically eligible to receive free licenses for any new WPF control products that come out within your year period. This benefit does not apply to WPF Essentials customers.

Live Demo

You can give all our lastest WPF control products a spin right in your browser as long as you have .NET 3.0 installed. Just follow the steps on this page to see live demos:
http://www.actiprosoftware.com/Products/DotNet/WPF/WPFStudio/LiveDemo.aspx

Download an Evaluation

You can download an evaluation of all our WPF controls from this page:
http://www.actiprosoftware.com/Download/Evaluations.aspx?ProductGroupKey=STUWPF

Upgrade to WPF Studio

Contact our sales team for information on discounted pricing for upgrading from one of our older WPF control product licenses to a license for WPF Studio or a new version of a WPF control product.

Free Upgrades to 2009.2

If you own an older WPF Studio version or one of its products and would like to upgrade to this latest version, please click the request a free upgrade link on your Organzation Purchases page. The link will appear there if your upgrade eligibility is active.


Actipro Software Support