Telerik UI for WPF

Release History

UI for WPF 2009.31103

November 2, 2009

Q3 2009

New Controls:


Telerik RadControls for WPF now feature standard Button, DropDownButton, RadioButton and SplitButton to allow you build complex forms and easily manage their input. All these buttons provide specific functionality that can be instrumental to achieving complete LOB applications. Telerik RadButtons for Silverlight also provide full Commands support.


RadDocking for WPF is a docking system like the one in Microsoft Visual Studio 2008. You get the dockable ToolWindows, a hidden DockingManager control, and a designer to make creating attractive layouts easy.


RadMenu is fully customizable, allowing you to create anything your imagination can conceive while keeping all advanced menu functionalities, such as: hierarchical databinding, rich programming model, boundary detection and many more.


It’s easy to save space and provide additional commands or features with RadContextMenu. The control is fully customizable, allowing you to create anything your imagination can conceive, while keeping all advanced menu functionalities, such as: hierarchical databinding, rich programming model, boundary detection, and many more.


Telerik OutlookBar for WPF lets you deliver Outlook’s navigational bar to your applications. You can take advantage of the data templates, icons, and the overflow menu. You can also easily move the items from the main navigation bar containing the OutlookBar’s items to the minimized area and the overflow menu by simply dragging the horizontal splitter.


Create flexible and interactive layouts for your rich web applications with the latest addition to RadControl for WPF - RadTileView. The control enables you to architect immersive user experiences with its configurable content "tiles", support for drag-and-drop rearrangement, and adjustable position of the minimized items. RadTileView comes with built-in item animations, which are also fully customizable to suit various scenarios.


Telerik WPF RibbonBar is an easy-to-use implementation of the Microsoft Office 2007 “ribbon” UI, which allows you to codelessly organize the navigation functionality of your application into a single compact toolbar control. Its popup engine, dynamic resizing, built-in galleries and powerful customization capabilities, make the Silverlight RibbonBar your shortcut to creating powerful navigation systems.



  • What's New
    • RadGridView / GridViewDataControl
      • Added Methods
        • Grouping: ExpandGroup, CollapseGroup, ExpandAllGroups, CollpaseAllGroups, FindGroupByItem
        • Hierarchy: ExpandHierarchyItem, CollapseHierarchyItem, ExpandHierarchyItem, CollapseHierarchyItem
        • Filtering: GetDistinctValues
        • PrintToHtml()
      • Added Properties
        • Virtualization
          • EnableRowVirtualization - toggles rows virtualizati
          • EnableColumnVirtualization - toggles columns virtualization
        • ColumnWidth - SizeToHeaer, SizeToCells, Auto, Star, pixel (100).
        • Grouping
          • AutoExpandGroups
          • GroupHeaderTemplate
        • EditTriggers - flags enumeration property where you can define actions that will put a cell into edit mode - CellClick, CurrentCellClick, Default, F2, None
        • CanUserSelect- determines whether selection can be triggered from the UI
        • SelectionMode - specify the selection behavior of RadGridView and GridViewDataControl
        • AlternationCount
        • ScrollPositionIndicatorTemplate - DataTemplate for scroll position indicator that will be displayed when ScrollMode is set to Deferred
    • Columns
      • Added New Column Types
        • GridViewImageColumn
        • GridViewHyperlinkColumn
        • GridViewDynamicHyperlinkColumn
        • GridViewMaskedTextBoxColumn
        • GridViewToggleRowDetailsColumn
        • GridViewSelectColumn
      • New base column for data bound scenarios: GridViewBoundColumnBase. All the related logic from GridViewDataColumn moved to the new column. All new column types used for editing derive from this column.
      • Added properties:
        • All columns
          • DisplayIndex
          • MinWidht, MaxWidth
          • GroupFooterTemplate
          • FooterTextAlignment
          • ToolTipTemplate
        • DataColumns
          • SortMemberPath
          • GroupMemberPath
          • GroupHeaderFormatString
      • GridViewComboBoxColumn
        • Added IsComboBoxEditable and ItemsSourceBinding properties
    • Row
      • GridViewRow
        • IsExpandable and IsExpanded - define whether a row is a hierarchy one. Used in custom hierarchy scenarios
      • GridViewGroupRow
        • Added GroupViewModel property used for group row customizations. It contains Column, GroupDescriptor and Header properties
    • DetailsProvider
      • Added Properties:
        • AreFrozen
        • VisibilityChangedCallbac
    • IDetailsProvider
      • Added Properties:
        • AreFrozen
        • VisibilityChangedCallback
    • GridViewRowDetailsEventArgs
      • Added Properties:
        • Visibility
    • FilteringDropDown
      • Extracted filtering UI to a new control named FilteringControl.
    • IColumnFilterDescriptor (new interface)
    • ColumnFilterDescriptor (new class)
    • DistinctValuesFilterDescriptor (new class)
    • FilteringControlBase (new class)
    • FilteringControl (new class)
    • IFilteringControl (new interface)
    • ViewModelBase (new class)
    • FilteringViewModel (new class)
    • DistinctValueViewModel (new class)
    • FilterDescriptorViewModel (new class)
    • Added ability to define your own custom filtering controls. Implement IFilteringControl or derive from FilteringControlBase and use FilteringControl property of the column to specify your custom filter control.
    • Row Details "lazy" loading: Row Details are not loaded until the first time they are about to become visible.
    • Distinct Values "lazy" loading: Distinct values are not loaded untrul the first time the filtering UI is about to become visible.
    • Added RowValidated and CellValidated events
    • Added GroupFooterTemplate for GridViewColumn
    • Added Clipboard.IsEnabled property (attached behavior)
    • Extended GridViewAddingNewEventArgs with Cancel member
    • GridViewDataControl GetDistinctValues() is now public
    • Added Copy to clipboard built-in support
    • Added SortMemberPath, GroupMemberPath property for GridViewDataColumn
    • Added metadata support for auto-generated columns
    • Added RowDetailsVisibilityChanged event to GridViewDataControl
    • ChildTableDefinitions are now exposed on GridViewDataControl
    • Added GridViewDataColumn.GroupHeaderFormatString property
    • Added BeginEdit() method on cell
  • What's Fixed
    • GridView selection modes are now consistent with the selection modes of Microsoft's Selector classes.
    • Column now can be replaced in AutoGeneratingColumn event.
    • Filters now persisted after the grid is rebound.
    • RadGridView.IsReadOnly incorrectly sets GridViewColumn.IsReadOnly is now fixed.
    • RowDetailsTemplate is now loaded only if needed (Lazy Loading)
    • GridViewComboBoxColumn is now exported properly.
    • Distinct filters now respect column DataFormatString.
    • Selecting child row no longer selects its parent row.
    • Fixed DomainDataSource column auto-generation when PageSize is greater than zero.
    • FilteringDropDown now displays distinct values based on the currently applied filters rather than all the data.
  • What's Changed
    • UI virtualization introduced for rows and columns.
    • GridViewColumn.Width is now Auto by default.
    • GridViewDataControl ScrollMode is now RealTime by default.
    • ColumnFilterDescriptors are now used instead of FieldFilterDescriptors.
    • New base type for data bound columns - GridViewBoundColumnBase. Inherited columns should set BindingTarget property.
    • Simplified and optimized templates for: GridViewRow, GridViewHeaderRow, GridViewFooterRow, GridViewGroupRow, GridViewGroupFooterRow, GridViewCell, GridViewFooterCell, GridViewGroupFooterCell
    • Width property of GridViewColumn is now of type GridViewLength, which allows more customizations - SizeToHeader, SizeToCells, etc.
  • Members marked as Obsolete in previous releases and deleted in Q3 2009:
    • GridViewHeaderCell: HeaderTextProperty, HeaderText, IsColumnFilterable
    • GridViewColumn: HeaderText
    • GridViewDataColumn: DataMemberPath
    • ExportExtensions: ToExcelML(this GridViewDataControl source, IList records, bool includeHeader), ToHtml(this GridViewDataControl source, IList records, bool includeHeader), ToText(this GridViewDataControl source, IList records, bool includeHeader), ToCsv(this GridViewDataControl source, IList records, bool includeHeader)
    • DistinctFilterControl
    • GridViewDataControl: RowAppearance, CreateFilterDescriptions(), FilterDescription, GroupDescriptions, SortDescriptions
    • GridViewGroupingEventArgs: GridViewGroupingEventArgs(CollectionChangeAction action, GroupDescription GroupDescription, int index), GroupDescription
    • GridViewItemsControl
    • GridViewSortingEventArgs: SortingState
    • RadGridView: AutoGenerateHierarchyFromDataSet
    • RowAppearanceSettings
    • RecordValidatingRoutedEventArgs
    • Field
    • FieldCollection
    • FieldDescriptor: DataMemberPath
    • IDataFieldDescriptor: DataMemberPath
    • AggregateFunction: Name, Calculate(GroupRecord targetGroup)
    • AverageFunction: AverageFunction(string propertyName, string sourceField, string caption), Calculate(GroupRecord targetGroup)
    • CountFunction: CountFunction(string functionName, string sourceField, string caption), Calculate(GroupRecord targetGroup)
    • EnumerableAggregateFunction: sourceField
    • FirstFunction: FirstFunction(string functionName, string calculationField, string caption), Calculate(GroupRecord targetGroup)
    • LastFunction: LastFunction(string functionName, string calculationField, string caption), Calculate(GroupRecord targetGroup)
    • MaxFunction: MaxFunction(string functionName, string calculationField, string caption), Calculate(GroupRecord targetGroup)
    • MinFunction: MinFunction(string functionName, string calculationField, string caption), Calculate(GroupRecord targetGroup)
    • SumFunction: SumFunction(string functionName, string sourceField, string caption), Calculate(GroupRecord targetGroup)
    • RadGroupDescription
    • RadGroupDescriptionCollection
    • RadSortDescriptionCollection
    • IRecordFactory
    • RecordManager
    • DataRecord
    • ExpandableDataRecord
    • GroupRecord
    • HeaderRecord
    • Record
    • RecordCollection
    • DataControl: CurrentRecord, SelectedRecord, SelectedRecords
    • StringExtensions
    • RecordNavigator
    • SelectionChangeEventArgs: RemovedRecords, AddedRecords
    • DistinctValuesList
    • CheckBoxItem
    • CheckBoxList
    • ClearFilterButton
  • Members marked as Obsolete in Q3 2009:
    • GridViewCell: CellRequestBringIntoViewEvent, Editor
    • GridViewCellBase: VerticalLineVisibilityProperty, VerticalLineFillProperty, VerticalLineThicknessProperty, VerticalLineVisibility, VerticalLineThickness, VerticalLineFill
    • ColumnsWidthMode
    • GridViewBoundColumnBase: EditorSettingsProperty, EditorSettings
    • GridViewColumn: ColumnWidthChangedEventArgs, ColumnWidthChanged, VerticalGridlinesBrushProperty, VerticalGridlinesThicknessProperty, VerticalGridlinesVisibilityProperty, VerticalGridlinesBrush, VerticalGridlinesThickness, VerticalGridlinesVisibility
    • GridViewRowValidatingEventArgs: NewValues, OldData
    • CheckBoxEditorSettings
    • ComboBoxEditorSettings
    • DatePickerEditorSettings
    • EditorSettings
    • EditorsLoader
    • GridViewCellEditor
    • GridViewCheckBoxEditor
    • GridViewComboBoxEditor
    • GridViewDatePickerEditor
    • GridViewMaskedTextBoxEditor
    • GridViewTextBoxEditor
    • IEditorSettings
    • MaskedTextBoxEditorSettings
    • TextBoxEditorSettings
    • GridViewDataControl: ValidationModeProperty, ValidationMode, ColumnsWidthModeProperty, AlternateExpandableRowStyle, ExpandableRowStyle, UseAlternateRowStyleProperty, UseAlternateRowStyle, ColumnsWidthMode, VerticalGridlinesVisibilityProperty, VerticalGridlinesVisibility, BringDataItemIntoView(), MultipleSelect
    • Telerik.Windows.Controls.GridView.GridView.GridViewGroupingEventArgs
    • BaseItemsControl: ItemsGenerator
    • GridViewExpandableRow
    • GridViewGroupRow: GridViewGroupRow(GridViewDataControl GridViewDataControl)
    • GridViewNewRow: ValidationMode
    • GridViewRow: ValidationMode
    • FilterDescriptor: FilterDescriptor(string member, FilterOperator FilterOperator, object filterValue, IValueConverter converter), FilterDescriptor(string member, FilterOperator FilterOperator, object filterValue, IValueConverter converter, string format)
    • PropertyRelation: GetDataSource(object context, TableDefinition definition)
    • RelationBase: GetDataSource(object context, TableDefinition definition)
    • TableDefinition: PreviewDataRecordCreate, AutoGenerateFieldDescriptors
    • TableRelation: GetDataSource(object context, TableDefinition definition)
    • RadRowItem: ValidationMode, DataItem
  • Changed Templates for 2009.Q3:
    • RadGridView
    • DataCellsPresenter
    • GridViewRow
    • GridViewCell
    • GridViewGroupRow
    • GridViewHeaderRow
    • GridViewHeaderCell
    • DraggedElement
    • GridViewScrollViewer
    • GridViewFooterRow
    • GridViewGroupFooterRow
    • GridViewFooterIndentCell
    • GridViewGroupFooterIndentCell
    • GridViewFooterCell
    • GridViewGroupFooterCell
    • DetailsPresenter
    • FrozenColumnSplitter
    • GridViewGroupPanelCell
    • DistinctFilterControl
    • GridViewGroupPanelItem
    • GridViewHeaderIndentCell
    • GridViewAggregateResultCell
    • ScrollPositionIndicator
    • GridViewDataControl
    • GridViewEditorPresenter – new
    • GridViewToggleButton – new
    • GridViewItemsControl – obsolete
    • GridViewExpander – obsolete
    • GridViewExpandableRow – obsolete
    • GridViewHierarchyChildPresenter – obsolete
    • GridViewHeaderSplitter - obsolete


  • What's New
    • Resource Grouping
    • TimeLinew View
    • Improved the way appointments display in Month view
    • New design of the Edit dialog
    • Standard resources added to the Appointment and Edit Appointment dialog
      • Category
      • Importance
      • TimeMarker
    • All-day area improvements
    • Added AllDayAreaHeight property
    • Added properties for implementing read-only scheduler:
      • IsReadOnly
      • IsBackAndForwardNavigationEnabled
      • IsViewModeNavigationEnabled
    • Added ResourceStyleMapping class for colorizing appointments when grouped. It contains the following properties
      • ResourceBrush
      • AppointmentBrush
      • MouseOverAppointmentBrush
      • SelectedAppointmentBrush
      • AppointementTemplate
    • Windows 7 theme
    • Added RecurrenceChoiceDialogDefaultRecurrenceMode property – disables confirmation dialog when opening recurring appointments
  • What's Fixed
    • Design time bugs in Blend
    • Clicking a day header in a Week view went to a wrong a day in some cases
    • First click in all day area did not highlight the time slot correctly
    • The selected time slot was not colorized on load and scrolling
    • The FirstDayOfWeek can now be set in XAML


  • What's New
    • Grouping & Aggregation: RadChart is now able to group and aggregate data during data binding optimizing numerous analytical business scenarios.
    • Multiple YAxis support: RadChart is now able to draw multiple y axes allowing you to plot series of different magnitude side-by-side.
    • Horizontal Series: RadChart new features the HorizontalBar, HorizontalStackedBar and HorizontalStackedBar100 types.
    • Exporting: RadChart is now able to export the rendered chart to different formats like: PNG, BMP, XLSX, SVG.
    • Negative Values: RadChart is now able to draw series below the X-Axis to achieve a more visually appealing rendering of negative values.
    • Human Readable & Scientific labels: for optimizing the comprehension of data RadChart introduces new support formats for numbers. Now the big numbers like 5,000,000 can be represented like 5mln or 5e6.
    • Added support for "#TOOLTIP" and #DATAITEM tokens to the custom label format expressions.
    • Added support for two new Label Format Tokens useful for stacked chart series – #STSUM (stacked sum – represents the sum of all stacked items for a given index) and #STPERCENT (stacked percent – the percent representation of the value of a given item with respect to all stacked items for the respective index).
    • Added databinding support for non-default ChartAreas.
    • Exposed DataBinding, DataBound and ItemDataBound events.
    • Introduced Windows7 theme.
  • What's Fixed
    • Fixed memory leaks in RadChart in dynamic data scenarios and tooltips.
    • Fixed an issue that prevented RadChart to correctly change its theme in runtime.
    • Fixed an issue with setting AxisY.Step before AxisY.MinValue that resulted in incorrect axis range.
    • Fixed an issue with missing axis titles in 3D chart types in some scenarios.
    • Fixed an issue with skewed AxisX ticks in horizontal bar series types.
    • Fixed an issue that prevented tooltips to support standard format expressions like "C2", "N2", etc.
    • Fixed an issue that prevented tooltip format customization for Range and financial series types.
    • Fixed an issue that prevented setting the AxisX.Step property declaratively in XAML.
    • Fixed an issue that prevented setting the AxisX.TicksDistance property declaratively in XAML.
    • Fixed NullReferenceException with custom chart layout in some scenarios.
    • Fixed a problem with tooltips not disappearing correctly under all conditions.
    • Fixed a styling issue with custom styles not applied correctly for non-default themes.
    • Fixed an issue with relative bubble size calculation for Bubble2D series .
    • Fixed an issue with declarative chart not databinding.
    • Fixed an issue with legend background image not applied correctly.
    • CollectionIndex property can now be set in XAML.
    • Fixed an issue with duplicated pointmarks for linear series.
    • Fixed an issue with axis title visibility in 3D.
    • Fixed an issue with wrong info for the last item in ChartItemClickEventArgs for linear series.
    • IsZeroBased and AutoRange Axis properties are now updated correctly runtime.
    • Fixed an issue with NullReference exception thrown when a chart item is clicked.
    • Fixed an issue with misaligned axis striplines and gridlines in 3D.
    • Fixed an issue with "Layout Cycle Detected" error thrown for linear series in certain cases.


  • What's New
    • Added playback (databinding) support for gauge indicators; the indicators API is extended with the following members / methods:
      • IndicatorBase.ValueSource property - Gets or sets value source for the playback feature.
      • IndicatorBase.ValueMappings property - Gets the value mappings that constitute the data mappings for an indicator.
      • IndicatorBase.StartPlayback(interval, frameChangedHandler) method - starts the playback of the ValueSource contents.
      • IndicatorBase.Reset() method - resets the playback.
      • IndicatorBase.MoveNext() method - moves to the next value in the ValueSource.
      • IndicatorBase.MovePrevious() method - moves to the previous value in the ValueSource.
  • What's Fixed
    • Fixed an issue with dynamic change of Min, Max, Tick and Label related properties of the LinearScale / RadialScale objects.
    • Fixed an issue with the control not behaving correctly in Silverlight out-of-browser mode.
    • Fixed an issue with LinearScale interactivity.
    • Fixed various issues with the numeric indicator templates.


  • What's New
    • Vertical UI Virtualization. The TreeView now supports the IsVirtualizing attached property of the TreeViewPanel which specifies whether the items of the TreeView will be virtualized.
    • TreeView now supports the TreeViewPanel.VirtualizationMode property which specifies whether the TreeViewItems will be recycled during virtualization.
    • OnIsEnabledChanged protected virtual method has been added to the TreeViewItem. This is a handler of the IsEnabledChanged event.
    • CheckBoxes & BringIntoView
    • SingleExpandPath
    • PreviewEditCancelled routed event has been added to allow editing to be cancelled.
    • EditorPrepare routed attached event has been added to the TreeViewItem, which allows the editor contained in the item to be accessed right after it has been shown so that it can be prepared.
    • PreviewEditorPrepare attached routed event has been added to the TreeViewItem that allows the default prepare actions for the editor to be cancelled.
  • What's Changed
    • EditCanceled, EditStarted and PreviewEditStarted events has changed from RoutedEventHandler to RadTreeViewItemEditedEventHandler.
    • The RadTreeViewItemEditedEventArgs now has two additional properties: NewValue and OldValue. The other two properties NewString and OldString are kept for compatibility.
    • If virtualization is used, the ChildDefaultLength property can be set to the expected header size of the TreeViewItems if it will be different than the default MinHeight of 24 for the TreeViewITems.
    • The SelectedItem is now a dependency property and its value can be set. The property can now be bound as well.
    • The SelectedContainer is now a dependency property and its value can be set.
    • The SelectedItems collection is cleared when the Items collection of the TreeView is reset.
    • The GetItemByPath and GetContainerByPath now always expand items without animation, regardless of the IsAnimationEnabled property.
    • The default value of the PathSeparator property is now “\”, replacing the old “\\”.
    • The Vista and Summer theme now have animations as well.
    • Now drop will not be allowed if the ItemSource of the control (TreeView or TreeViewItem) is not an IList.
    • The expand animation of the TreeView has been changed so that it will never be longer than 2 seconds so that expanding many children is easier.
    • The ControlTemplate for the TreeView has changed. The InBetweenDragCue element is now placed in a Grid right after the ScrollViewer. The only content of the ScrollViewer now is the ItemsPresenter.
  • What's Fixed
    • Storing properties of virtualized items is now does not memory leak if items are removed from a virtualized parent.
    • The theme of the TreeView is now applied to the DragCue it creates.


  • What' New
    • Added ContentTemplate and ContentTemplateSelectors properties that will be used for templates of the items that do not have a ContentTemplate assigned
    • Added SelectedMouseOver state, by default it is no different than the selected state
    • Added SelectedContentTemplateSelector property
  • What's Changed
    • When the ZIndex of the selected item’s container is changed, the ZIndex of the non-selected items will be equalized so that they will not appear chaotic
    • Selecting a TabItem in Blend will select it so that its content can be edited
    • Selecting items with the keyboard when the TabControl's placement is Left or Right now happens with the Up or Down arrows rather than the Left or Right
    • The SelectedContentTemplate property now has a public setter
    • The TabItemMarginConverter class has been removed. The same can be achieved with triggers or VisualStates
    • Setting the SelectedItem to null now will deselect all items and will not try to reselect the last successful selection
    • CommonStateGroup renamed to CommonStates for conformance. This should not affect existing themes since Visual  state playing is not bound to the category name
    • TabStripPlacement now can be changed after the control has loaded
    • The TabCotnrol will now try to focus its content on SelectionChanged only if the focus was in the TabControl before the selection
    • Theme can be changed at runtime


  • What's Changed
    • The drag-drop will not be initialized during design-time


  • What's Fixed
    • Fix Popup Animation
    • Fix scrolling and AutoComplete when VirtualizedStackPanel is used


  • What's Fixed
    • When IsReadOnly= true you can still use backspace and delete to nullify/delete a value
    • Added Overflow to the DIV element by default
    • Standard mask already supports combinations like: ###.###.###-##, ######-a
    • Standard mask character # already support digit or space as well
    • Standard mask character l already support digit or space as well
    • Standard mask already works when pressing Delete key
    • Standard mask Value property is now updating correctly
    • Incomplete values already do not display with special symbol like '-' and '_'
    • Standard mask does not throw index out of range exceptions
    • Percent and Currency masks already allow adding digits after the decimal point
    • Currency mask already place the digits correctly after select the entire text and enter new value
    • Currency and % already change the cursor position when entering new digits either by selection the whole digit or by replacing the next digit
    • Setting the value of a standard mask used not to clear the mask beyond the changed characters


  • What's New
    • New routed events have been added
      • CalendarClosedEvent – when popup is open
      • CalendarOpenedEvent - when popup is closed
  • What's New
    • Selecting the same time will not make the SelectedDate property null


  • What's New
    • Added new property AutoLoadItems to RadCarouselPanel


  • What's Fixed
    • Slider clipped its template when width < 56px


  • What's New
    • Response buttons are not clicked when disabled.
  • What's Fixed
    • ResponseButton attached property now allows the response button to not be exactly of type Button (now it allows of it is inhereted from Button).
    • Enable RadWindow in XBAP to be shown in different Windows than the main one.
    • RadWindow throws exception when reopened in WPF Windows-based application.


  • What's Fixed
    • Don't handle keys that are not used by the RadNumericUpDown any more.

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.