コード例 #1
0
ファイル: RangeBarSeries.cs プロジェクト: sk8tz/UI-For-UWP
        private static void OnPaletteModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if (e.OldValue.Equals(e.NewValue))
            {
                return;
            }

            RangeBarSeries series = d as RangeBarSeries;

            series.paletteModeCache = (SeriesPaletteMode)e.NewValue;

            if (series.paletteModeCache == SeriesPaletteMode.Series)
            {
                foreach (var item in series.legendItems)
                {
                    series.Chart.LegendInfosInternal.Remove(item.Value);
                }
                series.legendItems = null;
            }
            else
            {
                series.legendItems = new Dictionary <DataPoint, LegendItem>();
            }

            series.InvalidatePalette();
        }
コード例 #2
0
ファイル: RangeBarSeries.cs プロジェクト: sk8tz/UI-For-UWP
        internal override void UpdateLegendItem(FrameworkElement visual, DataPoint dataPoint)
        {
            if (visual != null && this.IsVisibleInLegend)
            {
                LegendItem item;
                bool       titleUpdateNeeded = false;

                if (this.paletteModeCache == SeriesPaletteMode.DataPoint)
                {
                    if (!this.legendItems.TryGetValue(dataPoint, out item))
                    {
                        item = new LegendItem();
                        titleUpdateNeeded = true;
                        this.legendItems.Add(dataPoint, item);

                        // TODO refactor this.
                        this.Chart.LegendInfosInternal.Add(item);
                    }

                    RangeBarSeries.UpdateLegendItemProperties(item, (Brush)visual.GetValue(Border.BackgroundProperty), (Brush)visual.GetValue(Border.BorderBrushProperty));
                }
                else
                {
                    item = this.LegendItems.FirstOrDefault();
                    this.UpdateLegendItemProperties((Brush)visual.GetValue(Border.BackgroundProperty), (Brush)visual.GetValue(Border.BorderBrushProperty));
                }

                if (item != null && titleUpdateNeeded)
                {
                    if (this.LegendTitleBinding != null)
                    {
                        this.UpdateLegendTitle(dataPoint, item);
                    }
                    else if (this.LegendTitle != null)
                    {
                        item.Title = this.LegendTitle;
                    }
                }
            }
        }