diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/AggregatedObservableCollection.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/AggregatedObservableCollection.cs
deleted file mode 100644
index 55a5cefe..00000000
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/AggregatedObservableCollection.cs
+++ /dev/null
@@ -1,175 +0,0 @@
-// (c) Copyright Microsoft Corporation.
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Collections.Specialized;
-using System.Diagnostics;
-using System.Linq;
-
-namespace System.Windows.Controls.DataVisualization
-{
- ///
- /// Aggregated observable collection.
- ///
- /// The type of the items in the observable collections.
- ///
- internal class AggregatedObservableCollection : ReadOnlyObservableCollection
- {
- ///
- /// Initializes a new instance of an aggregated observable collection.
- ///
- public AggregatedObservableCollection()
- {
- this.ChildCollections = new NoResetObservableCollection();
- this.ChildCollections.CollectionChanged += new NotifyCollectionChangedEventHandler(ChildCollectionsCollectionChanged);
- }
-
- ///
- /// Rebuilds the list if a collection changes.
- ///
- /// The source of the event.
- /// Information about the event.
- private void ChildCollectionsCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
- {
- Debug.Assert(e.Action != NotifyCollectionChangedAction.Reset, "Reset is not supported.");
-
- if (e.Action == NotifyCollectionChangedAction.Add)
- {
- e.NewItems
- .OfType()
- .ForEachWithIndex((newCollection, index) =>
- {
- int startingIndex = GetStartingIndexOfCollectionAtIndex(e.NewStartingIndex + index);
- foreach (T item in newCollection.OfType().Reverse())
- {
- this.Mutate(items => items.Insert(startingIndex, item));
- }
-
- INotifyCollectionChanged notifyCollectionChanged = newCollection as INotifyCollectionChanged;
- if (notifyCollectionChanged != null)
- {
- notifyCollectionChanged.CollectionChanged += ChildCollectionCollectionChanged;
- }
- });
- }
- else if (e.Action == NotifyCollectionChangedAction.Remove)
- {
- foreach (IList oldCollection in e.OldItems)
- {
- INotifyCollectionChanged notifyCollectionChanged = oldCollection as INotifyCollectionChanged;
- if (notifyCollectionChanged != null)
- {
- notifyCollectionChanged.CollectionChanged -= ChildCollectionCollectionChanged;
- }
-
- foreach (T item in oldCollection)
- {
- this.Mutate(items => items.Remove(item));
- }
- }
- }
- else if (e.Action == NotifyCollectionChangedAction.Replace)
- {
- foreach (IList oldCollection in e.OldItems)
- {
- INotifyCollectionChanged notifyCollectionChanged = oldCollection as INotifyCollectionChanged;
- if (notifyCollectionChanged != null)
- {
- notifyCollectionChanged.CollectionChanged -= ChildCollectionCollectionChanged;
- }
- }
-
- foreach (IList newCollection in e.NewItems)
- {
- INotifyCollectionChanged notifyCollectionChanged = newCollection as INotifyCollectionChanged;
- if (notifyCollectionChanged != null)
- {
- notifyCollectionChanged.CollectionChanged += ChildCollectionCollectionChanged;
- }
- }
-
- Rebuild();
- }
- }
-
- ///
- /// Synchronizes the collection with changes made in a child collection.
- ///
- /// The source of the event.
- /// Information about the event.
- private void ChildCollectionCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
- {
- Debug.Assert(e.Action != NotifyCollectionChangedAction.Reset, "Reset is not supported.");
- IList collectionSender = sender as IList;
-
- if (e.Action == NotifyCollectionChangedAction.Add)
- {
- int startingIndex = GetStartingIndexOfCollectionAtIndex(ChildCollections.IndexOf(collectionSender));
- e.NewItems
- .OfType()
- .ForEachWithIndex((item, index) =>
- {
- this.Mutate(that => that.Insert(startingIndex + e.NewStartingIndex + index, item));
- });
- }
- else if (e.Action == NotifyCollectionChangedAction.Remove)
- {
- foreach (T item in e.OldItems.OfType())
- {
- this.Mutate(that => that.Remove(item));
- }
- }
- else if (e.Action == NotifyCollectionChangedAction.Replace)
- {
- for (int cnt = 0; cnt < e.NewItems.Count; cnt++)
- {
- T oldItem = (T)e.OldItems[cnt];
- T newItem = (T)e.NewItems[cnt];
- int oldItemIndex = this.IndexOf(oldItem);
- this.Mutate((that) =>
- {
- that[oldItemIndex] = newItem;
- });
- }
- }
- }
-
- ///
- /// Returns the starting index of a collection in the aggregate
- /// collection.
- ///
- /// The starting index of a collection.
- /// The starting index of the collection in the aggregate
- /// collection.
- private int GetStartingIndexOfCollectionAtIndex(int index)
- {
- return ChildCollections.OfType().Select(collection => collection.CastWrapper()).Take(index).SelectMany(collection => collection).Count();
- }
-
- ///
- /// Rebuild the list in the correct order when a child collection
- /// changes.
- ///
- private void Rebuild()
- {
- this.Mutate(that => that.Clear());
- this.Mutate(that =>
- {
- IList items = ChildCollections.OfType().Select(collection => collection.CastWrapper()).SelectMany(collection => collection).ToList();
- foreach (T item in items)
- {
- that.Add(item);
- }
- });
- }
-
- ///
- /// Gets child collections of the aggregated collection.
- ///
- public ObservableCollection ChildCollections { get; private set; }
- }
-}
\ No newline at end of file
diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/AnimationSequence.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/AnimationSequence.cs
deleted file mode 100644
index ca2fb6a6..00000000
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/AnimationSequence.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// (c) Copyright Microsoft Corporation.
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-namespace System.Windows.Controls.DataVisualization.Charting
-{
- ///
- /// Specifies the supported animation sequences.
- ///
- /// Preview
- public enum AnimationSequence
- {
- ///
- /// Animates all of the data points simultaneously.
- ///
- Simultaneous = 0,
-
- ///
- /// Animates the data points from first to last.
- ///
- FirstToLast = 1,
-
- ///
- /// Animates the data points from last to first.
- ///
- LastToFirst = 2
- }
-}
\ No newline at end of file
diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/Axis.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/Axis.cs
deleted file mode 100644
index cc6fbce6..00000000
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/Axis.cs
+++ /dev/null
@@ -1,237 +0,0 @@
-// (c) Copyright Microsoft Corporation.
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Diagnostics.CodeAnalysis;
-using System.Windows;
-using System.Windows.Controls;
-using System.Collections.ObjectModel;
-using System.Collections.Specialized;
-
-namespace System.Windows.Controls.DataVisualization.Charting
-{
- ///
- /// An axis class used to determine the plot area coordinate of values.
- ///
- public abstract class Axis : Control, IAxis
- {
- #region public AxisLocation Location
- ///
- /// Gets or sets the axis location.
- ///
- public AxisLocation Location
- {
- get { return (AxisLocation)GetValue(LocationProperty); }
- set { SetValue(LocationProperty, value); }
- }
-
- ///
- /// Identifies the Location dependency property.
- ///
- public static readonly DependencyProperty LocationProperty =
- DependencyProperty.Register(
- "Location",
- typeof(AxisLocation),
- typeof(Axis),
- new PropertyMetadata(AxisLocation.Auto, OnLocationPropertyChanged));
-
- ///
- /// LocationProperty property changed handler.
- ///
- /// Axis that changed its Location.
- /// Event arguments.
- private static void OnLocationPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- Axis source = (Axis)d;
- AxisLocation oldValue = (AxisLocation)e.OldValue;
- AxisLocation newValue = (AxisLocation)e.NewValue;
- source.OnLocationPropertyChanged(oldValue, newValue);
- }
-
- ///
- /// LocationProperty property changed handler.
- ///
- /// Old value.
- /// New value.
- protected virtual void OnLocationPropertyChanged(AxisLocation oldValue, AxisLocation newValue)
- {
- RoutedPropertyChangedEventHandler handler = this.LocationChanged;
- if (handler != null)
- {
- handler(this, new RoutedPropertyChangedEventArgs(oldValue, newValue));
- }
- }
-
- ///
- /// This event is raised when the location property is changed.
- ///
- public event RoutedPropertyChangedEventHandler LocationChanged;
-
- #endregion public AxisLocation Location
-
- ///
- /// Gets the list of child axes belonging to this axis.
- ///
- public ObservableCollection DependentAxes { get; private set; }
-
- #region public AxisOrientation Orientation
- ///
- /// Gets or sets the orientation of the axis.
- ///
- public AxisOrientation Orientation
- {
- get { return (AxisOrientation)GetValue(OrientationProperty); }
- set { SetValue(OrientationProperty, value); }
- }
-
- ///
- /// Identifies the Orientation dependency property.
- ///
- public static readonly DependencyProperty OrientationProperty =
- DependencyProperty.Register(
- "Orientation",
- typeof(AxisOrientation),
- typeof(Axis),
- new PropertyMetadata(AxisOrientation.None, OnOrientationPropertyChanged));
-
- ///
- /// OrientationProperty property changed handler.
- ///
- /// Axis that changed its Orientation.
- /// Event arguments.
- private static void OnOrientationPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- Axis source = (Axis)d;
- AxisOrientation oldValue = (AxisOrientation)e.OldValue;
- AxisOrientation newValue = (AxisOrientation)e.NewValue;
- source.OnOrientationPropertyChanged(oldValue, newValue);
- }
-
- ///
- /// OrientationProperty property changed handler.
- ///
- /// Old value.
- /// New value.
- protected virtual void OnOrientationPropertyChanged(AxisOrientation oldValue, AxisOrientation newValue)
- {
- RoutedPropertyChangedEventHandler handler = OrientationChanged;
- if (handler != null)
- {
- handler(this, new RoutedPropertyChangedEventArgs(oldValue, newValue));
- }
- }
-
- ///
- /// This event is raised when the Orientation property is changed.
- ///
- public event RoutedPropertyChangedEventHandler OrientationChanged;
-
- #endregion public AxisOrientation Orientation
-
- ///
- /// Raises the invalidated event.
- ///
- /// Information about the event.
- protected virtual void OnInvalidated(RoutedEventArgs args)
- {
- foreach (IAxisListener listener in RegisteredListeners)
- {
- listener.AxisInvalidated(this);
- }
- }
-
- ///
- /// Gets or the collection of series that are using the Axis.
- ///
- public ObservableCollection RegisteredListeners { get; private set; }
-
- ///
- /// Returns a value indicating whether the axis can plot a value.
- ///
- /// The value to plot.
- /// A value indicating whether the axis can plot a value.
- ///
- public abstract bool CanPlot(object value);
-
- ///
- /// The plot area coordinate of a value.
- ///
- /// The value for which to retrieve the plot area
- /// coordinate.
- /// The plot area coordinate.
- public abstract UnitValue GetPlotAreaCoordinate(object value);
-
- ///
- /// Instantiates a new instance of the Axis class.
- ///
- protected Axis()
- {
- RegisteredListeners = new UniqueObservableCollection();
- this.RegisteredListeners.CollectionChanged += RegisteredListenersCollectionChanged;
- this.DependentAxes = new ObservableCollection();
- this.DependentAxes.CollectionChanged += OnChildAxesCollectionChanged;
- }
-
- ///
- /// Child axes collection changed.
- ///
- /// The source of the event.
- /// Information about the event.
- private void OnChildAxesCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
- {
- this.OnDependentAxesCollectionChanged();
- }
-
- ///
- /// Child axes collection changed.
- ///
- protected virtual void OnDependentAxesCollectionChanged()
- {
- }
-
- ///
- /// This event is raised when the registered listeners collection is
- /// changed.
- ///
- /// The source of the event.
- /// Information about the event.
- private void RegisteredListenersCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
- {
- if (e.OldItems != null)
- {
- foreach (IAxisListener obj in e.OldItems)
- {
- OnObjectUnregistered(obj);
- }
- }
- if (e.NewItems != null)
- {
- foreach (IAxisListener obj in e.NewItems)
- {
- OnObjectRegistered(obj);
- }
- }
- }
-
- ///
- /// This method is invoked when a series is registered.
- ///
- /// The series that has been registered.
- protected virtual void OnObjectRegistered(IAxisListener series)
- {
- }
-
- ///
- /// This method is invoked when a series is unregistered.
- ///
- /// The series that has been unregistered.
- protected virtual void OnObjectUnregistered(IAxisListener series)
- {
- }
- }
-}
\ No newline at end of file
diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisIntervalType.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisIntervalType.cs
deleted file mode 100644
index 301d3e13..00000000
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisIntervalType.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-// (c) Copyright Microsoft Corporation.
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-namespace System.Windows.Controls.DataVisualization.Charting
-{
- ///
- /// Specifies an interval type.
- ///
- /// Preview
- internal enum AxisIntervalType
- {
- ///
- /// Automatically determined by the ISeriesHost control.
- ///
- Auto = 0,
-
- ///
- /// The interval type is numerical.
- ///
- Number = 1,
-
- ///
- /// The interval type is years.
- ///
- Years = 2,
-
- ///
- /// The interval type is months.
- ///
- Months = 3,
-
- ///
- /// The interval type is weeks.
- ///
- Weeks = 4,
-
- ///
- /// The interval type is days.
- ///
- Days = 5,
-
- ///
- /// The interval type is hours.
- ///
- Hours = 6,
-
- ///
- /// The interval type is minutes.
- ///
- Minutes = 7,
-
- ///
- /// The interval type is seconds.
- ///
- Seconds = 8,
-
- ///
- /// The interval type is milliseconds.
- ///
- Milliseconds = 9,
- }
-}
\ No newline at end of file
diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisLabel.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisLabel.cs
deleted file mode 100644
index 75ac6f65..00000000
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisLabel.cs
+++ /dev/null
@@ -1,112 +0,0 @@
-// (c) Copyright Microsoft Corporation.
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-using System.Diagnostics.CodeAnalysis;
-using System.Globalization;
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-
-namespace System.Windows.Controls.DataVisualization.Charting
-{
- ///
- /// A label used to display data in an axis.
- ///
- public class AxisLabel : Control
- {
- #region public string StringFormat
- ///
- /// Gets or sets the text string format.
- ///
- public string StringFormat
- {
- get { return GetValue(StringFormatProperty) as string; }
- set { SetValue(StringFormatProperty, value); }
- }
-
- ///
- /// Identifies the StringFormat dependency property.
- ///
- public static readonly DependencyProperty StringFormatProperty =
- DependencyProperty.Register(
- "StringFormat",
- typeof(string),
- typeof(AxisLabel),
- new PropertyMetadata(null, OnStringFormatPropertyChanged));
-
- ///
- /// StringFormatProperty property changed handler.
- ///
- /// AxisLabel that changed its StringFormat.
- /// Event arguments.
- private static void OnStringFormatPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- AxisLabel source = (AxisLabel)d;
- string newValue = (string)e.NewValue;
- source.OnStringFormatPropertyChanged(newValue);
- }
-
- ///
- /// StringFormatProperty property changed handler.
- ///
- /// New value.
- protected virtual void OnStringFormatPropertyChanged(string newValue)
- {
- UpdateFormattedContent();
- }
- #endregion public string StringFormat
-
- #region public string FormattedContent
- ///
- /// Gets the formatted content property.
- ///
- public string FormattedContent
- {
- get { return GetValue(FormattedContentProperty) as string; }
- protected set { SetValue(FormattedContentProperty, value); }
- }
-
- ///
- /// Identifies the FormattedContent dependency property.
- ///
- public static readonly DependencyProperty FormattedContentProperty =
- DependencyProperty.Register(
- "FormattedContent",
- typeof(string),
- typeof(AxisLabel),
- new PropertyMetadata(null));
- #endregion public string FormattedContent
-
-#if !SILVERLIGHT
- ///
- /// Initializes the static members of the AxisLabel class.
- ///
- [SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Justification = "Dependency properties are initialized in-line.")]
- static AxisLabel()
- {
- DefaultStyleKeyProperty.OverrideMetadata(typeof(AxisLabel), new FrameworkPropertyMetadata(typeof(AxisLabel)));
- }
-
-#endif
- ///
- /// Instantiates a new instance of the AxisLabel class.
- ///
- public AxisLabel()
- {
-#if SILVERLIGHT
- this.DefaultStyleKey = typeof(AxisLabel);
-#endif
- this.SetBinding(FormattedContentProperty, new Binding { Converter = new StringFormatConverter(), ConverterParameter = StringFormat ?? "{0}" });
- }
-
- ///
- /// Updates the formatted text.
- ///
- protected virtual void UpdateFormattedContent()
- {
- this.SetBinding(FormattedContentProperty, new Binding { Converter = new StringFormatConverter(), ConverterParameter = StringFormat ?? "{0}" });
- }
- }
-}
diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisLocation.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisLocation.cs
deleted file mode 100644
index cc3cf6db..00000000
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisLocation.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-// (c) Copyright Microsoft Corporation.
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-namespace System.Windows.Controls.DataVisualization.Charting
-{
- ///
- /// Axis position.
- ///
- public enum AxisLocation
- {
- ///
- /// Location is determined automatically.
- ///
- Auto,
-
- ///
- /// Left in the series host area.
- ///
- Left,
-
- ///
- /// Top in the series host area.
- ///
- Top,
-
- ///
- /// Right in the series host area.
- ///
- Right,
-
- ///
- /// Bottom of the series host area.
- ///
- Bottom,
- }
-}
\ No newline at end of file
diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisOrientation.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisOrientation.cs
deleted file mode 100644
index 063dd267..00000000
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/AxisOrientation.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-// (c) Copyright Microsoft Corporation.
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-namespace System.Windows.Controls.DataVisualization.Charting
-{
- ///
- /// Specifies the orientation of an axis.
- ///
- /// Preview
- public enum AxisOrientation
- {
- ///
- /// Orientation is automatically set.
- ///
- None,
-
- ///
- /// Indicates the axis plots along the X axis.
- ///
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "X", Justification = "X is the expected terminology.")]
- X,
-
- ///
- /// Indicates the axis plots along the Y axis.
- ///
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Y", Justification = "Y is the expected terminology.")]
- Y,
- }
-}
\ No newline at end of file
diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/CategoryAxis.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/CategoryAxis.cs
deleted file mode 100644
index 68cc3a93..00000000
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended.DataVisualization/Charting/Axis/CategoryAxis.cs
+++ /dev/null
@@ -1,363 +0,0 @@
-// (c) Copyright Microsoft Corporation.
-// This source is subject to the Microsoft Public License (Ms-PL).
-// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
-// All other rights reserved.
-
-using System.Collections.Generic;
-using System.Diagnostics.CodeAnalysis;
-using System.Linq;
-using System.Windows.Shapes;
-
-namespace System.Windows.Controls.DataVisualization.Charting
-{
- ///
- /// An axis that displays categories.
- ///
- [StyleTypedProperty(Property = "GridLineStyle", StyleTargetType = typeof(Line))]
- [StyleTypedProperty(Property = "MajorTickMarkStyle", StyleTargetType = typeof(Line))]
- [StyleTypedProperty(Property = "AxisLabelStyle", StyleTargetType = typeof(AxisLabel))]
- [StyleTypedProperty(Property = "TitleStyle", StyleTargetType = typeof(Title))]
- [TemplatePart(Name = AxisGridName, Type = typeof(Grid))]
- [TemplatePart(Name = AxisTitleName, Type = typeof(Title))]
- public class CategoryAxis : DisplayAxis, ICategoryAxis
- {
- ///
- /// A pool of major tick marks.
- ///
- private ObjectPool _majorTickMarkPool;
-
- ///
- /// A pool of labels.
- ///
- private ObjectPool _labelPool;
-
- #region public CategorySortOrder SortOrder
- ///
- /// Gets or sets the sort order used for the categories.
- ///
- public CategorySortOrder SortOrder
- {
- get { return (CategorySortOrder)GetValue(SortOrderProperty); }
- set { SetValue(SortOrderProperty, value); }
- }
-
- ///
- /// Identifies the SortOrder dependency property.
- ///
- public static readonly DependencyProperty SortOrderProperty =
- DependencyProperty.Register(
- "SortOrder",
- typeof(CategorySortOrder),
- typeof(CategoryAxis),
- new PropertyMetadata(CategorySortOrder.None, OnSortOrderPropertyChanged));
-
- ///
- /// SortOrderProperty property changed handler.
- ///
- /// CategoryAxis that changed its SortOrder.
- /// Event arguments.
- private static void OnSortOrderPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- CategoryAxis source = (CategoryAxis)d;
- source.OnSortOrderPropertyChanged();
- }
-
- ///
- /// SortOrderProperty property changed handler.
- ///
- private void OnSortOrderPropertyChanged()
- {
- Invalidate();
- }
- #endregion public CategorySortOrder SortOrder
-
- ///
- /// Gets or sets a list of categories to display.
- ///
- private IList