ComponentOne Chart for WPF and Silverlight
Chart for WPF and Silverlight / Chart Features / Markers Labels / Adding Markers in Code
In This Topic
    Adding Markers in Code
    In This Topic

    The topics above all describe how to add a marker using XAML markup. You might have a project that requires you to add a marker in code.

    First, you need to create a new ChartPanel:

    C#
    Copy Code
    var pnl = new ChartPanel();
    

    Once you've added a new ChartPanel, you'll add a new ChartPanelObject and set the alignment:

    C#
    Copy Code
    var obj = new ChartPanelObject()
     {
       HorizontalAlignment = HorizontalAlignment.Right,
       VerticalAlignment = VerticalAlignment.Bottom
     };
    

    Next, you'll add a border element:

    C#
    Copy Code
    var bdr = new Border()
                {
                    Background = new SolidColorBrush(Colors.Green) { Opacity = 0.4 },
                    BorderBrush = new SolidColorBrush(Colors.Green),
                    BorderThickness = new Thickness(1, 1, 3, 3),
                    CornerRadius = new CornerRadius(6, 6, 0, 6),
                    Padding = new Thickness(3)
                };
    

    Add a StackPanel element that contains two TextBlock controls. Note that the binding source is your ChartPanelObject:

    C#
    Copy Code
    var sp = new StackPanel();
    
                var tb1 = new TextBlock();
                var bind1 = new Binding();
                bind1.Source = obj;
                bind1.StringFormat = "x={0:#.##}";
                bind1.Path = new PropertyPath("DataPoint.X");
                tb1.SetBinding(TextBlock.TextProperty, bind1);
    
                var tb2 = new TextBlock();
                var bind2 = new Binding();
                bind2.Source = obj;
                bind2.StringFormat = "y={0:#.##}";
                bind2.Path = new PropertyPath("DataPoint.Y");
                tb2.SetBinding(TextBlock.TextProperty, bind2);
    
                sp.Children.Add(tb1);
                sp.Children.Add(tb2);
    
                bdr.Child = sp;
    

    Set the ChartPanelObject's Content, DataPoint, and Action properties, and then add the ChartPanelObject to the ChartPanel. The last line of code adds the collection of layers to your chart control.

    C#
    Copy Code
    obj.Content = bdr;
    obj.DataPoint = new Point();
    obj.Action = ChartPanelAction.MouseMove;
    
    pnl.Children.Add(obj);
    
    chart.View.Layers.Add(pnl);
    

    The last line of code you need sets the Attach property:

    C#
    Copy Code
    obj.Attach = ChartPanelAttach.MouseMove;
                };
            }
        }
    

    With the code in this topic, you've created a chart marker that will follow your mouse.

     

    See Also