Beispiel #1
0
        /// <summary>
        /// Updates the symbol.
        /// </summary>
        /// <param name="symbol">The Symbol String</param>
        private void SetSymbol(string symbol)
        {
            ChartAdornmentInfoBase adornmentInfo = adornment.Series.adornmentInfo;

            if (symbol != "Custom")
            {
                if (this.Children.Contains(m_symbolPresenter))
                {
                    this.Children.Remove(m_symbolPresenter);
                }

                if (!this.Children.Contains(PredefinedSymbol))
                {
                    this.Children.Add(PredefinedSymbol);
                }
                if (Double.IsNaN(adornment.YData) || double.IsNaN(adornment.XData))
                {
                    this.Children.Remove(PredefinedSymbol);
                }

                PredefinedSymbol.DataContext   = this;
                this.PredefinedSymbol.Template = ChartDictionaries.GenericSymbolDictionary[symbol + "Template"] as ControlTemplate;
            }
            else
            {
                if (adornmentInfo.SymbolTemplate != null && !this.Children.Contains(m_symbolPresenter))
                {
                    this.Children.Add(m_symbolPresenter);
                }

                if (this.Children.Contains(PredefinedSymbol))
                {
                    this.Children.Remove(PredefinedSymbol);
                }

                if (Double.IsNaN(adornment.YData) || double.IsNaN(adornment.XData))
                {
                    this.Children.Remove(PredefinedSymbol);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Sets the binding between the adornment symbol and <see cref="ChartAdornmentInfo"/>
        /// </summary>
        /// <param name="adornment"></param>
        private void SetContentBinding(ChartAdornment adornment)
        {
            ChartAdornmentInfoBase adornmentInfo = adornment.Series.adornmentInfo;

            if (adornmentInfo.ShowMarker)
            {
                this.SetBinding(ChartAdornmentContainer.SymbolProperty
                                , CreateAdormentBinding("Symbol", adornmentInfo));

                this.PredefinedSymbol.SetBinding(Control.HeightProperty
                                                 , CreateAdormentBinding("SymbolHeight", adornmentInfo));

                this.PredefinedSymbol.SetBinding(Control.WidthProperty
                                                 , CreateAdormentBinding("SymbolWidth", adornmentInfo));

                if (adornment.Series is ChartSeries &&
                    adornment.Series.ActualArea.SelectedSeriesCollection.Contains(adornment.Series) &&
                    adornmentInfo.HighlightOnSelection &&
                    adornment.Series.ActualArea.GetSeriesSelectionBrush(adornment.Series) != null &&
                    adornment.Series.ActualArea.GetEnableSeriesSelection())
                {
                    this.PredefinedSymbol.SetBinding(Control.BackgroundProperty
                                                     , CreateAdormentBinding("SeriesSelectionBrush", adornment.Series));
                }
                else if (adornment.Series is ISegmentSelectable &&
                         adornment.Series.SelectedSegmentsIndexes.Contains(adornment.Series.ActualData.IndexOf(adornment.Item)) &&
                         adornmentInfo.HighlightOnSelection &&
                         adornment.Series.ActualArea.GetEnableSegmentSelection() &&
                         (adornment.Series as ISegmentSelectable).SegmentSelectionBrush != null)
                {
                    this.PredefinedSymbol.SetBinding(Control.BackgroundProperty
                                                     , CreateAdormentBinding("SegmentSelectionBrush", adornment.Series));
                }
                else if (adornmentInfo.SymbolInterior == null)
                {
                    this.PredefinedSymbol.SetBinding(SymbolControl.BackgroundProperty
                                                     , CreateAdormentBinding("Interior", adornment));
                }
                else
                {
                    this.PredefinedSymbol.SetBinding(Control.BackgroundProperty
                                                     , CreateAdormentBinding("SymbolInterior", adornmentInfo));
                }

                if (adornment.Series is ChartSeries &&
                    adornment.Series.ActualArea.SelectedSeriesCollection.Contains(adornment.Series) &&
                    adornmentInfo.HighlightOnSelection &&
                    adornment.Series.ActualArea.GetSeriesSelectionBrush(adornment.Series) != null &&
                    adornment.Series.ActualArea.GetEnableSeriesSelection())
                {
                    this.PredefinedSymbol.SetBinding(Control.BorderBrushProperty
                                                     , CreateAdormentBinding("SeriesSelectionBrush", adornment.Series));
                }
                else if (adornment.Series is ISegmentSelectable &&
                         adornment.Series.SelectedSegmentsIndexes.Contains(adornment.Series.ActualData.IndexOf(adornment.Item)) &&
                         adornmentInfo.HighlightOnSelection &&
                         adornment.Series.ActualArea.GetEnableSegmentSelection() &&
                         (adornment.Series as ISegmentSelectable).SegmentSelectionBrush != null)
                {
                    this.PredefinedSymbol.SetBinding(Control.BorderBrushProperty
                                                     , CreateAdormentBinding("SegmentSelectionBrush", adornment.Series));
                }
                else
                {
                    this.PredefinedSymbol.SetBinding(Control.BorderBrushProperty
                                                     , CreateAdormentBinding("SymbolStroke", adornmentInfo));
                }

                if (adornmentInfo.SymbolTemplate != null)
                {
                    this.m_symbolPresenter.SetBinding(ContentPresenter.ContentTemplateProperty
                                                      , CreateAdormentBinding("SymbolTemplate", adornmentInfo));
                }

                this.m_symbolPresenter.SetBinding(ContentPresenter.ContentProperty
                                                  , CreateAdormentBinding("", adornment));
            }
        }