We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Tooltip showing Legend , Label, XData YData

Using a StackColumn a want to show a tooltip with the above elements: The legend, the label and the X and YData. . Everytging is working except the label. My data template is the above:


 DataTemplate template = new DataTemplate();
            FrameworkElementFactory border = new FrameworkElementFactory(typeof(Border));
            border.SetValue(Border.BackgroundProperty, Brushes.WhiteSmoke);
            border.SetValue(Border.CornerRadiusProperty, new CornerRadius(5, 5, 5, 5));
            border.SetValue(Border.PaddingProperty, new Thickness(3.0));
            border.SetValue(Border.BorderBrushProperty, Brushes.LightGray);
            border.SetValue(Border.BorderThicknessProperty, new Thickness(2.0));

            FrameworkElementFactory stackpanelVertical = new FrameworkElementFactory(typeof(StackPanel));
            stackpanelVertical.SetValue(StackPanel.OrientationProperty, Orientation.Vertical);

            FrameworkElementFactory stackpanelLegend = new FrameworkElementFactory(typeof(StackPanel));
            stackpanelLegend.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);

            FrameworkElementFactory chartLegend = new FrameworkElementFactory(typeof(Syncfusion.UI.Xaml.Charts.ChartLegend));
            chartLegend.SetValue(Syncfusion.UI.Xaml.Charts.ChartLegend.HorizontalAlignmentProperty, HorizontalAlignment.Stretch);
            chartLegend.SetValue(Syncfusion.UI.Xaml.Charts.ChartLegend.VerticalAlignmentProperty, VerticalAlignment.Center);
            chartLegend.SetValue(Syncfusion.UI.Xaml.Charts.ChartLegend.HorizontalContentAlignmentProperty, HorizontalAlignment.Stretch);
            chartLegend.SetValue(Syncfusion.UI.Xaml.Charts.ChartLegend.VerticalContentAlignmentProperty, VerticalAlignment.Center);
            Binding chartLegendBinding = new Binding();
            chartLegendBinding.Path = new PropertyPath("Interior");
            chartLegend.SetValue(Syncfusion.UI.Xaml.Charts.ChartLegend.BackgroundProperty, chartLegendBinding);

            FrameworkElementFactory txtblockLabel = new FrameworkElementFactory(typeof(TextBlock));
            txtblockLabel.SetValue(TextBlock.FontSizeProperty, 12.0);
            txtblockLabel.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center);
            txtblockLabel.SetValue(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Stretch);
            txtblockLabel.SetValue(TextBlock.ForegroundProperty, Brushes.Black);
            Binding label = new Binding();
            label.Path = new PropertyPath("Label");
            label.Converter = new LegendValueConverter();
            txtblockLabel.SetValue(TextBlock.TextProperty, label);


            FrameworkElementFactory stackpanelValues = new FrameworkElementFactory(typeof(StackPanel));
            stackpanelValues.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);

            FrameworkElementFactory txtblockX = new FrameworkElementFactory(typeof(TextBlock));
            txtblockX.SetValue(TextBlock.FontSizeProperty, 12.0);
            txtblockX.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center);
            txtblockX.SetValue(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Stretch);
            txtblockX.SetValue(TextBlock.ForegroundProperty, Brushes.Black);
            Binding XDataBinding = new Binding();
            XDataBinding.Path = new PropertyPath("Item");
            XDataBinding.Converter = new ValueConverter();
            txtblockX.SetValue(TextBlock.TextProperty, XDataBinding);

            FrameworkElementFactory txtblockSeperator = new FrameworkElementFactory(typeof(TextBlock));
            txtblockSeperator.SetValue(TextBlock.FontSizeProperty, 12.0);
            txtblockSeperator.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center);
            txtblockSeperator.SetValue(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Stretch);
            txtblockSeperator.SetValue(TextBlock.ForegroundProperty, Brushes.Black);
            txtblockSeperator.SetValue(TextBlock.TextProperty, ":");

            FrameworkElementFactory txtblockY = new FrameworkElementFactory(typeof(TextBlock));
            txtblockY.SetValue(TextBlock.FontSizeProperty, 12.0);
            txtblockY.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center);
            txtblockY.SetValue(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Stretch);
            txtblockY.SetValue(TextBlock.ForegroundProperty, Brushes.Black);
            Binding YDataBinding = new Binding();
            YDataBinding.Path = new PropertyPath("YData");
            YDataBinding.StringFormat = NumberFormat;
            txtblockY.SetValue(TextBlock.TextProperty, YDataBinding);
        

            stackpanelLegend.AppendChild(chartLegend);
            stackpanelLegend.AppendChild(txtblockLabel);
           
            stackpanelValues.AppendChild(txtblockX);
            stackpanelValues.AppendChild(txtblockSeperator);
            stackpanelValues.AppendChild(txtblockY);

            stackpanelVertical.AppendChild(stackpanelLegend);
            stackpanelVertical.AppendChild(stackpanelValues);
            border.AppendChild(stackpanelVertical);
            template.VisualTree = border;

            return template;           

Any help?

Thanks
George

3 Replies

SJ Sumathi Jayaraj Syncfusion Team April 1, 2015 05:40 PM UTC

Hi George,

Thank you for contacting our Syncfusion support.

I have analyzed your requirement and you can get the “Label” of the series in the converter as specified in the below code snippet.

publicclassLegendValueConverter:IValueConverter
{
publicobjectConvert(objectvalue,TypetargetType,objectparameter,System.Globalization.CultureInfoculture)
{
return(valueasChartSegment).Series.Label;
}

}


We have prepared a sample based on your requirements. Please find the sample in the following attachment.
WPFSample.zip

Please let us know if you have any queries.


Regards,
Sumathi J


GS George Sterg April 1, 2015 07:35 PM UTC

That works perfect! Thanks!


SJ Sumathi Jayaraj Syncfusion Team April 2, 2015 05:08 AM UTC

Hi George,

Thanks for the update. Please let us know if you require further assistance on this.

Regards,
Sumathi J

Loader.
Live Chat Icon For mobile
Up arrow icon