Telerik UI for WPF

Release History

UI for WPF 2011.1315

March 15, 2011

Q1 2011

New Controls:



The RichTextBox control offers broad editing and formatting capabilities with unmatched performance and true Word-like experience.


RadTimeBar Beta

With RadTimeBar, your end-user can easily scroll and navigate through a large time period as well as select a certain date range. RadTimeBar is blazing fast even when working with a large set of data, providing smooth experience when zooming, scrolling or drilling the data. Use it independently, or combined with SparkLines to create rich data visualization.



RadDataForm control will provide UI for displaying and editing properties of an object in a form layout. It will include collection navigation capabilities, basic data validation and will also respect key DataAnnotation attributes. As all other controls it will be compliant with the "lookless" concept and provide slick and highly customizable UI.



RadExpressionEditor provides end users the ability to write and edit complex formula expressions as a free form text. At the same time the new control gives the developers access to the structured data (in the form of a LINQ expression) about the entered expression. The primary use case for this component is integration within RadGridView and its LINQ based data engine, which allows unlimited runtime data shaping customizations.



RadMaskedInput controls are designed for masking (controlling correct input) and formatting (displaying) culture specific values like numbers, currency, dates and text. The controls support data validation and provide great control over the input behavior, navigation, masked text (when in edit mode), display text (when not in edit mode).




Backwards Compatibility:

  • When horizontal virtualization is turned on the GridViewCellsPanel’s Children collection does not have the realized cells in correct order. Use RadRowItem.Cells collection instead.

What’s New:

  • Added: Navigation commands for Home, End, PageDown and PageUp keys (MoveFirst, MoveHome, MoveLast, MoveEnd, MovePageDown, MovePageUp, MoveTop, MoveBottom.
  • Select/Unselect methods added for RadGridView. These methods should be used instead SelectedItems.Add/SelectedItems.Remove in order to have maximum selection performance.
  • Names for cell automation peers are now based on the item name and column index.
  • Optimized performance of the grid: wise dependency property setting, direct strategy for cellloaded/unloaded
  • Split BindingToExpressionExtensions into BindingToExpressionHelper and BindingToExpressionExtensions.
  • Added: GetValueForItem() method for GridViewExpressionColumn.
  • Added: GetValueForItem() method for GridViewBoundColumnBase.
  • Modified GridViewDataControl.FindExistingSortDescriptor to use the EffectiveSortMemberPath property of GridViewColumn, instead of IDataFieldDescription.GetDataMemberName().
  • Added: GroupRowIsExpandedChanging and GroupRowIsExpandedChangedevent for GridViewDataControl.

What’s Fixed:

  • ReorderColumnsMode default value is changed to None.
  • CellLoaded and CellUnloaded routed strategy is changed to Direct.
  • ScrollIndicator now will show correct values when the grid is grouped.
  • Automatically generated hierarchy now will generate RadGridView with MaxHeight="300" instead GridViewDataControl.
  • Fixed: FooterTextAlignment not applied correctly on GridViewGroupFooterCell.
  • Fixed: Null reference when trying to copy disjoint cell regions.
  • Fixed: Exception is thrown when navigation keys are used (Up, Down, etc) and RadGridView has no columns.
  • Fixed: StackOverFlow when read only cell is selected and Validation fails.
  • Fixed: Invalid editing event order when CellEditTemplate is used.
  • Fixed: Problems with grouping when reusing containers on reset.
  • Fixed: Horizontal scrolling to the beginning of the row on vertical scroll via keyboard.
  • Fixed: Memory leak in scrollviewer.
  • Fixed: ScrollIntoViewAsync does not always work correctly when the row height is variable and virtualization is turned on.
  • Fixing issue with ExpressionColumn not correctly initializing its func delegate when base type is used as a parameter of the expression.
  • Fixing issue with member access function creation with covariant argument.
  • Fixed: Issue where GridViewExpressionColumn would throw an exception if the supplied expression is a parameterless lambda.
  • Fixed: Hierarchy sometimes disappears after a cell from the parent row is edited.
  • Containers are now reused when Items collection is reset (Sorting, Filtering).
  • Fixed: Binding errors in Visual Studio output window with AutoGenerateColumns is set to False and grid bound to VirtualQueryableCollectionView.
  • Fixed: Bug in GridViewExpressionColumn, which would cause application to crash if the data item raises PropertyChanged and the column has a CellTemplate.
  • Fixed: Exception in PropertyPathDescriptor.GetPropertyOwnerValue method when too long nesting is used (A.B.C).
  • Fixed: Exception in GVCP when calling scroll to home.
  • Editing in grouped scenario refactoring (improved performance).
  • Fixed: Issue with not calling dropImpossible when leaving droppable area when drop has never been approved.
  • Fixed: Issue with RadGridView grouping when put in RadMenu.
  • Fixed: Second commit skips data validation.
  • Fixed: Issue with reorder grouppanelcells.
  • PresentationMode property now working in GridViewCheckBox when set in style.
  • Fixed: RadGridView handles Esc key even when it is not in edit mode.
  • Fixed: Exception while setting cellvisual cues, optimizing cell recycling.
  • Adaptive way to remove cells from children collection - solve problem with slow scrolling after restore window.
  • Fixed: RowDetails for the new row (InsertRow) are shown only at first time use.
  • Optimizations in setting dependency properties while generating/recycling content.
  • Fixed: GridView cannot edit null values when column is bound to a Nullable type via Dynamic object.
  • Fixed: DataLoaded event is fired twice on an initial load.
  • Fixed: Issue with cellbackground while virtualizing.
  • Optimizations in grid view on getting/setting dependency properties of the cells while preparing them.
  • Fixed: RowIsExpandedChanged events args were incorrect.
  • Fixed: Changing "DataMemberBinding" does not affect already loaded cells.
  • Fixed: Multiple sort doesn't work when RadGridView is bound to ICollectionView
  • Fixed: Issue with raising CellLoaded on Footer cells twice
  • Fixed: Wrong mask is applied in the field filter when the underlying property is of type decimal.
  • Fixed: Edit item in grouped scenario doesn't update group aggregates.
  • Fixed: GridviewSelectColumn now select items, even if SelectionUnit is cell.
  • Fixed: Commit cell edit hits underlying property setter no matter if value has been edited.
  • Fixed: ContainerFromItem did not return container for item when grid is bound to Dictionary.
  • Fixed: Sorting with pending changes and RIA fails
  • Fixed: Issue where a column's sorting state would change even if the user canceled the Sorting event.
  • Fixed: Issue where not all affected cells would be selected after pasting.
  • Fixed: Property access in GridViewBoundColumnBase now defaults to the DynamicPropertyAccess sleeve.
  • Fixed:Issue where ActivateRowCommand would cause validation to fail when parameter is KeyEventArgs.
  • Fixed: Issue where connecting lines of GridViewGroupPanelItem would be incorrect.
  • Fixed: A null ref exception occured when a user tries to group by a column with GroupMemberPath set and no DataMemberBinding set.
  • Fixed: Issue with support for CustomTypeDescriptor's PropertyDescriptor ValueChange event notification and update of cell's content.
  • Fixed: Invalid cast exception when grid is paged (moved to any next page) and then grouped.
  • Fixed: Edit item in a grouped grid when grid is bound to EntitySet.
  • Fixed: RadGridViewAutomationPeer GetItem() method does not work properly.
  • Added: A ColumnFilterDescriptor property to GridViewFilteringEventArgs and GridViewFilteredEventArgs.
  • Fixed: Grid rows not recycled properly when navigating up and down with arrow keys.
  • Fixed: ItemContainerGenerator not recreated properly when reapplying grid template.
  • Fixed: Tab key from an edited cell with failing validation (exception thrown in setter) causes 2 hits of the underlying property setter.
  • Fixed: Issue in GridViewHeaderCell-Part_SortIndicator is not visible in Ascending state.
  • Fixed: SortDescriptor is not removed (multi-sort scenario) when IQueryableCollectionView is used as RadGridView.ItemsSource.
  • Fixed: Null reference exception in OnDropDownPopupOpened.
  • UpdateValueEvent for numeric filter RadMaskedTextBox set to UpdateValueEvent.LostFocus
  • When EnableColumnVirtualization is False only arrange of GridViewCellPanels will be invalidated - not measure!
  • Fixed: ValidatesOnDataErrors property doesn't work with nested (complex) properties.
  • Fixed: Add item to grouped grid doesn't work when item implements ICustomTypeDescriptor:
  • Fixed: Element inside invisible container gains focus.
  • Fixed: Edited row container is reused for another item (results in wrong editing state for row randomly across RadGridView items).
  • Fixed: Inserting some new items in group scenario without expanding any group results in adding only one visual item.
  • Fixed: Insert, delete stop working after a cancel edit is performed (double ESC press) when RadGridView is bound to a CollectionViewSource but item doesn't implement IEditableObject).
  • Fixed: Setting CanUserSelect to false will cancel any pending drag operation.
  • Fixed: DataLoadMode.Asynchronous does not work properly on initial load
  • Fixed: Bug where GridViewExpressionColumn would throw an exception when CreateCellElement is called with a null data item.
  • Fixed: Memory leak in GridViewHeaderCell.FilteringDropDown.
  • Fixed: Auto sized columns not rendered properly on async dataload.
  • Fixed: Footer cell properties not applied correctly runtime.
  • Fixed: Cell content not reinitialized properly after Reset.
  • Fixed: Child groups are missing when grouping a column that has a Converter defined on its DataMemberBinding.
  • Fixed: GridViewDataControl scrolling is not reset when not needed
  • Fixed: Bug where connecting lines in GroupPanel would display before the first item.
  • Fixed: GridViewDynamicHyperlinkColumn and GridViewHyperlinkColumn not working properly on horizontal scroll.
  • Removed duplicate calls to IValueConverter.Convert when grouping with the new ColumnGroupDescriptor.
  • GridViewDataControl now subscribes to its DataItemCollection.CollectionChanged event, instead of the DataItemCollection.CollectionView.CollectionChanged event.
  • Fixed: A bug in GridViewHeaderCell Style (Sorting Indicator)
  • Fixed: When grid is grouped expanding any group after the first one also expands the first group.
  • Fixed: Missing scrollbar oninRadGridView for WPF with auto columns.
  • Fixed: GridView: InsertRow doesn't respect BO INotifyPropertyChanged interface.


What’s New:

  • Added support for multiple ItemsSources – it is now possible to populate the control from different data providers through the SeriesMapping.ItemsSource property.
  • Added support for handling empty (null) data points – you can control the visual presentation throught the SeriesDefinition.EmptyPointBehavior property:
    • EmptyPointBehavior.Gap (default) - Disconnects the data series, to signify the presence of empty data point.
    • EmptyPointBehavior.Drop – Does not render visible representation for the corresponding empty data point.
    • EmptyPointBehavior.Zero – Replaces the empty data point with 0 value.
  • Added RangeBar and HorizontalRangeBar 2D series types.
  • Added built-in interoperability with RadTimeBar through the RadChart.TimeBar property – once this property is set, the TimeBar selection will be used to filter the displayed data in the chart control automatically (note that this is supported for scenarios where the XValue is DateTime).
  • ChartLegend.TitleFontWeight property is now obsolete – use ChartLegend.HeaderFontWeight instead.
  • Added ChartArea.Command and ChartArea.CommandParameter properties to provide support for ItemClick commanding.
  • Added ChartHierarchyCommands.Back, Forward, and Reset commands for hierarchical data scenarios.
  • Added HierarchyManager.CurrentItemsSource property that gets the itemssource corresponding to the current hierarchy level.
  • Added ChartLegend.HeaderFontWeight property that gets or sets the font weight of the header template.
  • Added RadChart.UpdateLogicalChildren() method that can be used to sync the control state in scenarios where control with non-default layout is used and the layout is updated dynamically (add/remove ChartArea on the fly).
  • Added AxisX.ShouldScaleStepOnZoom / ShouldRoundMinValueOnZoom properties that can be used to accomplish a zooming / scrolling scenario where constant mapping between series items and axis ticks should be preserved (set ShouldScaleStepOnZoom to false and ShouldRoundMinValueOnZoom to true).
  • Added ChartArea.ItemOverlapPercent property that gets or sets the item overlap percent for overlapping bars.

What’s Changed:

  • Interactivity API now works independently from the series definition interactivity settings (i.e. you can programmatically select item from code without explicitly enabling interactivity effects for the specific series).

What’s Fixed:

  • RadChart now propagates inheritance context along the logical tree to support native bindings to DataContext for SeriesMapping, ItemMapping, SeriesDefinitions, ChartDefautlView, Axes, etc.
  • Fixed PointMark styling -- it is now possible to customize the shape & appearance of individual point marks through MVVM.
  • Fixed a problem with additional AxisY not resizing properly when the chart is nested in a scrollviewer.
  • Fixed zoom/scroll disabled under certain conditions with multiple series.
  • Fixed empty series should not be taken into account when calculating axis range.
  • Fixed a problem with disappearing label when increasing chart size.
  • Fixed ChartTitle / ChartLegend not getting correct theme settings if non-default layout is used.
  • Fixed series and legend item visibility inconsistency - the legend items will now be collapsed when the series visibility is set to collapsed / hidden (previously they were only collapsed when the series was collapsed and visible when the series was hidden).
  • Fixed OverflowException in AxisX when IsZeroBased was set to true in specific scenarios.
  • Fixed horizontal gridlines disappearing under specific conditions.
  • Fixed chart freezing when changing XAxis to DateTime.
  • Fix a problem with Logarithmic Y axis for Range series type.
  • Fix a problem with the last axis item visibility in specific scenarios.
  • Fixed NullReferenceException with hierarchy manager in design-time.
  • SeriesDefinition change notifications (SeriesDefinition will not be cloned unless grouping is enabled, or it is set through DefaultSeriesDefinition property).
  • Layout cycle detected exception when trying to measure / arrange charts within very tight constraints (e.g. integration scenarios with RadTileView).
  • ChartTitle / ChartLegend declared in XAML not getting the instance chart theme correctly if non-default one is used.
  • User-defined styles not applied properly on all axis-related elements.
  • Memory leaks in dynamic update scenarios and in scenarios where the ChartArea template is changed.
  • Binding support for ChartArea.ZoomScrollSettingsX and ZoomScrollSettingsY.
  • Line chart not drawn correctly in specific scenario (AxisX in “strict” mode and sorting by YValue applied when the items order specified by sorting differs from the order specified by the strict mode).
  • Interactivity selected state for scatter point items.
  • Stacked100 series issue when one of the series contains negative value(s).
  • NullReferenceException with camera extension in specific 3D series scenarios.
  • NullReferenceException when ChartArea.Annotations property is set to null.
  • Unpredicted zooming in specific scenarios with context menu.
  • PlotAreaMouseEventArgs for scenarios with horizontal charts and for scenarios with logarithmic axis.
  • Axis.IsZerobased property value cannot be changed in runtime.
  • Stacked series not refreshed when a data point value changes.
  • It is now possible to declare individual MarkerShape for different legend items.
  • Visual interactivity effects not applied for non-default themes.
  • XmlDataProvider binding issue.
  • Secondary AxisY disappearing on resize.
  • NullReferenceException when Funnel3D is loaded but at the same time axes properties are set.
  • Fixed: Crash when adding CameraExtention in constructor.
  • Fixed: Issue when defining ChartArea.Extentions in XAML.
  • ItemsPanelOrientation binding error shown in Output addressed.
  • Legend items not getting correct theme settings if non-default ApplicationTheme is used.


What’s New:

  • Added AppintmentItemContentTemplate/Selector.
  • Added StringFormat properties to the ViewDefinitions for Date GroupHeaders and TimeRuler elements.
  • Added StretchAppointments property to TimelineView.
  • Added IsReadOnly on Slot.
  • ICategory, ITimeMarker, IResourceType interfaces.
  • Additional interfaces to help storing appointments in a database: IRecurrenceRule, IExceptionOccurrence, ICategory, ITimeMarker, IResourceType, etc.
  • The Categories, Show as, and High importance and Low importance properties are exported to iCal format.
  • UI Automation.

What’s Changed:

  • Renamed some classes named Scheduler* to ScheduleView* and marked the old classes as obsolete.
  • IAppointment.Resources is now of type IList.

What’s Fixed:

  • Changing the view from TimeLine to MonthView by code when we have Resources throw null reference exception.
  • IResources rendered incorrectly in GroupHeaders.
  • Low priority and High importance buttons can be pressed at the same time in edit appointment dialog.
  • Recycled TimeRulerItems sometimes dissapear due framework bug - measuring ContentPresenter with infinity and reapplying new Content sometimes fails to stretch the ContentPresenter.
  • ScheduleView AppointmentSelectionChanged fired twice when editing appointment (with Dialog).
  • ScheduleView AppointmentSelectionChanged is not fired when selected item is removed from source collection.
  • ScheduleView rendering stop working if AppointmentSource collection fires reset.
  • Exception when dragging something that is not Appointment into ScheduleView.
  • ActiveViewDeifinition is cleared when a ViewDefinition is removed from ViewDefinitions.
  • AppointmentSaving event is fired twice when canceled within the AppointmentSaving handler.
  • GroupHeaders are rendered incorrectly when changing multiple properties on a ViewDefinition.
  • Memory leak if ICollectionView is used as AppointmentSource.
  • Resize Occurrences of recurring appointments is "jumpy".
  • Resources that are not part of the grouping should not be deleted from appointment's resources when an appointmetn is dragged.
  • ScheduleView design time fixes.
  • ScheduleView navigation buttons do not work for the first time if ScheduleView is not already focused.
  • ShowDialog event is not fired for the EditRecurrence dialog.
  • TimeMarkers are not localized correctly.
  • VisibleRangeChangedCommand should be executed right after the control is loaded.
  • Not enough space provided for UI to accommodate long strings (Localization).
  • Improved the appointment snapping logic when dragging and resizing.
  • CreateAppointment command now uses its parameter.
  • DayStartTime and DayEndTime in ViewDefinition now work in MonthView.
  • Fixed: ScheduleView rendering stop working if AppointmentSource collection fires reset.
  • Fixed: The GroupHeader controls are always measured.
  • Fixed: AppointmentSelectionChanged fired twice when editing an appointment with Dialog.
  • Fixed: AppointmentSelectionChanged is not fired when the selected appointment is removed from source collection.
  • Fixed: Resizing Occurrences of recurring appointments is "jumpy".
  • Fixed: ShowDialog event is not fired for the EditRecurrence dialog.


What’s New:

  • Added CommandExecutionTrigger property.
  • Ability to see which item is initially checked (IsUserInitiated=true) in PreviewChecked/PreviewUnchecked event when TreeView is in TriState mode.
  • Added Asynchronous BringIntoView method on the tree view.
  • Added commands for ItemClick and ItemDoubleClick events.
  • Added Double Click Event.
  • Added DragInProgress event.
  • Added ExpanderVisibility or IsExpandAllowed property of the TreeViewItem.
  • Allow expand/collapse animations with easings.
  • Added Click and Double Click events.
  • Controlling the visibility of the expander.
  • Double-click action mode.
  • ExpanderStyle Blog Article and Demo.
  • Handles "Enter" key even when nothing is done.
  • Remove "set" from IsSelectionActive documentation.

What’s Fixed:

  • Setting TreeViewDragCue ItemTemplate results in memory leak.
  • Add text search within treeview items.
  • BringIntoView is not brining the whole item with the Selection, but only the internal item itself.
  • BringIntoView security issue in XBAP.
  • BringItemIntoView and BringIndexIntoView methods don't bring the requested item into view if the TreeView is Virtualized and it has expanded items.
  • Cannot change theme dynamically when Header is UI element.
  • Hierarchical Virtualization crashes the application when a TreeViewItem is collapsed.
  • IsDragDropEnabled does not work correctly when bound with "false" as initial value.
  • IsSelected container binding causes a virtualized TreeView to jump while scrolling.
  • IsUserInitiated returns false when the treeitem is checked with the SpaceBar key.
  • Item stays in MouseOver state when Microsoft's BusyIndicator is started from the ContextMenu.
  • Item stays in MouseOver state when tree/item is unloaded.
  • Items not being rendered correctly when IsVirtualizing is set to True.
  • Rendering issues in "Recycling" virtualization mode.
  • TreeView does not behave correctly when inside Docking inside ScrollViewer.
  • When Item is disabled the expander button is not disabled.


What’s Fixed:

  • RadTreeListView now can delete properly child items.
  • Fixed: Increased memory consumption while continuously selecting text in texbox inside row.
  • Fixed: TreeListView rows are not released from the memory after calling reset.
  • Fixed: Setting row height under 25 px is not respected.
  • Fixed: Issue with TreeListViewDragCue and themes in External themes scenario.
  • Fixed: Null reference exception fixed in OnGroupPanelChanged - no group panel.
  • Fixed: Issue with not releasing TreeListViewRows from the memory after calling reset.
  • Fixed: Issue with TreelistView min height of rows.
  • Fixed: Drag and Drop event args in RadTreeListView contained only the first of the selected items.
  • Fixed: RadTreeListView crash when scrolled to bottom and ItemsSource changed.
  • Fixed: TreeListView - columns cannot be reordered.


What’s New:

  • Added: A property in order to switch between circle application button and rectangle button.

What’s Fixed:

  • Unexpected behavior of the RadRibbonDropDown button with a RadColorSelector as a DropDownContent.
  • When a RibbonGroup's Visibility is Collapsed, the GroupVariants aren't applied as expected.
  • Changing ItemsSource property is not working as expected.
  • DialogLauncherButtonStyle dependency property exception is thrown.
  • RibbonWindow repaint issue.
  • The selection logic of Tab control is wrong.
  • When a non-default theme is set, the RibbonBarGallery isn't properly displayed.
  • When hosted in windows forms ElementHost Variants are not configured correctly on load.
  • RibbonWindow: Major refactoring.
  • When ribbon bar is dynamically changed via binding it is not displayed properly and the application button cannot be clicked any more.
  • RibbonWindow is flickering while resizing.
  • XBAP ApplicationMenu issues.


What’s New:

  • Added PreservePositionWhenMaximized property.
  • Added PreviewTilesStateChanged event.
  • Added TilesPositionChanged event.
  • Added Virtualization for scrollable items.
  • Allow customizable tile sizes in restored state.
  • Allow restored items to have a fixed size and be wrapped in a scrollviewer.
  • Allow tiles to have fixed sizes.
  • Replacing ordered item.

What’s Fixed:

  • Dynamically theme changing causes minimized items to disappear.
  • Data binding the Content property of a TileViewItem does not work.
  • Drag and drop doesn't work properly when you use browser zoom different than 100%.
  • Dragging does not work in WinForms host.
  • If you create and show a new window with TileView inside it the drag and drop doesn't work.
  • Dragging does not work in a floating dock pane.
  • Incorrect behavior with paging.
  • MaximizedItem strange behavior when you change the ItemsSource.
  • Fixed: Memory leak.
  • Rapidly clicking on item headers while animations are in progress causes a bug.
  • ScrollBar doesn't hide when you change the ItemsSource.
  • ScrollBar doesn't refresh its value when you hide items.
  • ScrollBar hides without setting its offset to zero and leaves some items outside the view area.
  • Slow animations cause incorrect minimized tiles positions.
  • Some TileViewItems appear blurred.
  • Strange rendering of the RadTileView on start/refresh.
  • The header foreground color is not changed when changing the Theme.
  • TilesStateChanged and TileStateChanged events don't fire when a RadTileViewItem is removed.
  • TileView doesn't work when TileState is bound and the first item is Maximized.
  • When there is a scrollbar, you scroll down and hide an item the other items don't position properly.
  • When you handle the PreviewTileStateChanged event the ToggleButton is not correct.


What’s New:

  • Added support for multiple map providers – it is now possible to specify several tile providers that will be displayed one over another through the RadMap.Providers property.
  • Added support for single image providers through the UriImageProvider class. Note that you can either specify single image for all zoom levels, or you can specify different image for every distinct zoom level. Also, note that this provider always should have its GeoBounds property set.
  • Added support for the OSGB36 and EPSG:900913 projections to the EmptyProvider.
  • Added support for built-in conversion between the following coordinate systems EPSG:4326 <-> OSGB36, and EPSG:4326 <-> EPSG:900913. It allows you to use shapefiles created for OSGB36 or EPSG:900913 (spherical Mercator with coordinates given in meters) with map providers which uses EPSG:4326 (Mercator with coordinates given as latitude and longitude) so it is possible to show such shapefiles “as is” over the BingMaps or OpenStreetMap imagery. The converter can be specified through the MapShapeReader.CoordinateConverter property (set it to OSGB36Converter or EPSG900913Converter).
  • Added option to customize the commands in the CommandBar for every map provider (see the how-to section in the documentation for more information).
  • Added option to restrict panning region for RadMap through the RadMap.GeoBounds property (see the how-to section in the documentation for more information).
  • Added option to restrict the region represented by map provider within geographical bounds through the MapProvider.GeoBounds property.
  • Added two new properties that control the geographical bounds of the information layer:
    • InformationLayer.Region – Gets or sets the geographical region covered by the layer.
    • InformationLayer.RegionMode - Gets or sets geographical region size mode. It can be “Static” or “Dynamic” (default). “Static” means that region has constant geographical location and size which are specified in the Region” property. “Dynamic” means that location and size of the region are calculated when items are added or removed to/from information layer. Note that if elements are grouped into several regions on the map then it is recommended to consider using several different information layers as well (one per region).
  • Added support for MapLayer.ZoomRange attached property for the geographically restricted map providers.
  • Added option to specify tile size different than the default 256x256 in the TiledMapSource class.
  • Added support for culture settings to the map sources. Bing map tile sources use value from the RadMap.Language property to show map using the corresponding culture. Note that Bing imagery service does not provide support for all cultures - see http://msdn.microsoft.com/en- us/library/cc981048.aspx for the supported cultures.

What’s Changed:

  • MapProviderBase.MinZoomLevel / MaxZoomLevel properties are obsolete – use RadMap.MinZoomLevel / MaxZoomLevel properties instead.
  • RadMap.AllowedCommands property is obsolete – use the Commands property of the respective map provider and set the CommandDescription.IsAllowed property for the desired command to change its availability.
  • RadMap. ZoomBarPresetsSettings property is obsolete now -- use Command.Text property for the corresponding zoom level command in the RadMap.MapZoomBar.Commands collection.
  • Every provider has its own set of commands shown in its CommandBar now (you can access them via the Commands property of the respective provider).
  • The InformationLayer is always geographically limited now and does not cover the whole surface of the map but just a part of it In order to improve precision – since InformationLayer.RegionMode is set to “Dynamic” by default, existing solutions should continue to work without any modifications.

Custom map provider architecture is not backwards compatible with previous versions

Here is a list of all provider-related changes:

  • IMapProvider interface no longer exists.
  • MapProviderBase class exists but it should not be used as a base class for custom providers any more. All custom map providers should inherit either from TiledProvider or ImageProvider.
  • TiledProvider is a base class for map providers that show map as a sequence of tiles (e.g. BingMaps, OpenStreetMap).
  • ImageProvider is a base class for providers that show map as a single image (UriImageProvider).
  • Since all existing custom providers (prior to Q1 2011) show map as a sequence of tiles, they should be changed to inherit from the TiledProvider class. The only property which must be overridden in these custom providers is SpatialReference -- it should return the actual projection used by the provider (in all existing custom providers prior to Q1 2011 it should be MercatorProjection).

Here is a list of all map source-related changes:

  • The map provider cannot be used as a map source by itself as it was allowed before.
  • The logic which provides tiles must be moved to separate class – map source.
  • All map source classes should inherit either from TiledMapSource, or ImageMapSource classes and override methods depending on the specific map source type.
    • TiledMapSource is a base class for map sources that return map tiles (that includes all BingMaps sources: aerial, road, birds eye, and all OpensStreetMap sources: Mapnik and Osmarenderer).
    • ImageMapSource is a base class for map sources that return single map image.
  • Since all existing providers prior to Q1 2011 show map as a sequence of tiles, their new map source classes should inherit from the TiledMapSource class and meet the following requirements:
    • It should override the Initialize method.
    • It should override the GetTile method and existing custom logic should be moved here.
    • It should call RaiseInitializeCompleted method when the respective custom provider is initialized (in case of simple providers it is enough to call this method from the override Initialize method).

What’s Fixed:

  • Fixed issue with corrupted tile image throwing exception.
  • Fixed issue with using MapPath instances in the DynamicLayer in specific scenarios.
  • Fixed application freeze when the center and zoom level of map are changed a few times quickly.
  • Fixed ItemTemplateSelector on an informationlayer not working.
  • Fixed quality of map tiles for tiled providers (BingMaps, OpenStreetMap).
  • Fixed design-time issue BingMapProvider crashing when opened in the designer.


What’s Fixed:

  • The control will not throw an exception when measured with infinity.
  • Fixed crashes when certain components are individually added in Blend.


What’s Fixed:

  • Bulletgraph now propagates inheritance context along the logical tree to support native bindings to DataContext.
  • Fixed issue when all QualitativeRanges have value equal to double.NaN.
  • Fixed crashes when certain components are individually added in Blend.
  • Improved Blend design time support by creating a better drag and drop and styling experience.


What’s Changed:

  • DragQuery is no longer raised with DropImpossible DragStatus when there is not approved destination.
  • Speed up initial open of Drag Cue in Native mode.

What’s New:

  • Added: CurrentCursor property in DragOptions to change current mouse cursor while dragging.
  • Added: Effects property in DragOptions to define allowed effects while performing drag operation in native mode.
  • Providing Autodrag attached property for handling drag scenarios easier.
  • D&D: added DragCueDisplayBehavior and ArrowCueDisplayBehavior to control their display in Native Mode.
  • Fixed: AutoBringIntoView=false does not have effect if set in App constructor.

What’s Fixed:

  • Fixed: DragCue is not positioned correctly on fast drag in native mode.
  • Fixed: Drag Offset is not reset after drag is performed.
  • Fixed: Fast click triggers drag logic.
  • Fixed: When draggable items are nested e.Options.Source is always the parent draggable item.
  • Fixed: Opening Message Box on drop complete cause calling DropComplete to be raised twice.
  • Fixed: DragDropeventArgs.GetElement() does not work correctly when hosted in Windows forms.


What’s New:

  • DragReorder of tab headers support.

What’s Fixed:

  • Keep the content's state when the selected tab is changed.
  • Selection logic must be triggered only once on start up.
  • TabControl can have multiple TabItems in MouseOver state when another control is shown ontop in SelectionChanged event.


What’s New:

  • Added DataPagerPresenter.PageSize property to allow TemplateBinding to RadDataPager.PageSize property.
  • Added DataPagerPresenter.ItemCount property to allow TemplateBinding to RadDataPager.ItemCount property.

What’s Fixed:

  • Fixed: The GoToNextPage and GoToLastPage buttons are not correctly enabled/disabled when the number of pages changes.
  • Fixed: OneWay binding the ItemCount property does not work correctly in Unbound Mode.
  • Fixed: DataPagerTextBox does not change IsEnabled when the corresponding CanExecuteChanged is fired.
  • Fixed: PageSize Binding is broken if the DataContext is assigned after EndInit has been called.


What’s New:

  • FilterOperatorsLoading event is now fired on a member change even if the new member is of the same type.


What’s Fixed:

  • Fixed issue with proportional gradient brushes in linear gauge bar indicator.


What’s Fixed:

  • Fixed: Problem with large numbers.
  • Fixed: SetThumbsPosition does not calculate the correct width/height.
  • Fixed: The Slider thumb cannot be moved to a point when the Expression_Dark theme is applied.
  • Fixed: Track does not return correct size.
  • Fixed: ColorPicker example displays wrong colors.
  • Fixed: Calling UpdateLayout crashes the Chart.
  • Fixed: Infinite loop occurs when using Converter in TickTemplate.
  • Fixed: The slider is misplaced when its width is set.


What’s Fixed:

  • Cannot be data bound.


What’s Fixed:

  • ToggleButton check states in Expression_Dark theme are visually the same.
  • DropDownButton: When KeepOpen is set to true you cannot close the drop down even if you click on the button.


What’s New:

  • Add a property in order to change the default "Folders" text.

What’s Fixed:

  • ContentTemplateSelector is not working.


What’s New:

  • Allow expand/collapse animation with easings.

What’s Fixed:

  • PanelBarItem stays selected if PreviewCollapsed is handled.
  • PanelBarItem's Header causes an exception during the change of the theme.


What’s Fixed:

  • Gap between CalendarItems and ClockItems is large and the user can click between the items. Increased the hit area of the buttons.


What’s Fixed:

  • The filtered items are not shown when IsFilteringEnabled is changed runtime.
  • RadComboBoxItem - removed ButtonChrome from the control template in order to optimize performance and memory consumption.
  • Application theme foreground is applied on the SelectedItem when other theme is applied locally.


What’s Fixed:

  • ContextMenu placement is wrong when Placement is not Absolute and Browser is Zoomed.
  • HideDelay property is ignored for root menu items in RadContextMenu.
  • RadContextMenu does not restore focus to previous focused element in certain cases.
  • RadContextMenu Opened event is fired after RadMenuItem CanExecuteChanged.
  • Right click on submenu item in RadContextMenu does not close the context menu.


What’s New:

  • RadDateTimePicker default height is now 22.


What’s Fixed:

  • Docking doesn't work correctly when the FlowDirection property is set to RightToLeft.
  • When Docking is hosted in a WindowsFormsHost resizing with keyboard doesn't work (throws an exception).


What’s New:

  • Add TopLevelShowDelay and TopLevelHideDelay properties.
  • RadMenuItem - removed ButtonChrome from the control template in order to optimize performance and memory consumption.
  • Automatically assign RadMenuItem.Command property if data item is ICommand.

What’s Fixed:

  • CanExecuteChanged event handler is collected by GC.
  • RadMenuItem CanExecuteChanged of ICommand is fired several times unnecessary.
  • RadMenuItem Command executed is fired only when CanExecute return true.
  • RadMenuItem IsEnabled property is overridden by Command CanExecute.
  • Root level menu items in RadMenu are not opened immediately on mouse enter from opened item.
  • When browser is zoomed RadMenu flickers when hover over the menu items.


What’s Fixed:

  • Broken binding in RadWindow themes throws errors in Output.


What’s Fixed:

  • Error messages displaying that the recurrence rule is not valid is now localized.
  • AllDayAreaHeight and TimeSlotTemplateSelector bug in Windows7 theme for RadScheduler.

Visual Studio Extensions for WPF

What’s New:

  • IMPROVE: Installer prompts for Visual Studio close when Visual Studio blocks the setup.
  • IMPROVE: Installer UI - installation wizard requires less clicks.
  • IMPROVE: Installers should not display the FatalError screen when a known error happens.
  • IMPROVE: Progress text refresh happening too fast.
  • IMPROVE: Project Management wizards cannot finish when no assemblies are selected.
  • IMPROVE: Visual Studio Templates setup - display informative message when the setup fails.

What’s Fixed:

  • FIX: All VS template files are saved in the machine's default encoding instead in Unicode.
  • FIX: Browsed custom distributions not persisted.
  • FIX: Upgrade log shows invalid warnings when upgrading project with GAC references with other GAC references.
  • FIX: Reference not updated if the referenced assembly is contained in the project.
  • FIX: Uninstall/Upgrade failure when Live Demos folder is deleted.

New features & Roadmap

Have a feature request?

Post your feedback via the WPF and Silverlight Feedback Portal.

What's new across all Telerik products?

See all updates

Get Started Waves

Next Steps

Launch demos

See Telerik UI for WPF in action.

Check pricing

Purchase individual products or any of the bundles.

Download 30-day free trial

With dedicated technical support.