Tooltips not showing

2 posts, 0 answers
  1. Mark
    Mark avatar
    13 posts
    Member since:
    Aug 2012

    Posted 07 Aug 2012 Link to this post

    The ItemToolTipOpening event doesn't even fire:


        <UserControl.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="/CorporateBondCalculator;component/CBCResources.xaml" />
                </ResourceDictionary.MergedDictionaries>
                
                <Style x:Name="ChartPlotAreaStyle"    TargetType="Grid" />
                <Style x:Name="RadChartPlotAreaStyle" TargetType="telerik:ClipPanel" />

                <Style x:Name="ChartLegendStyle"      TargetType="toolkit:Legend">
                    <Setter Property="Foreground"        Value="Orange"/>
                    <Setter Property="VerticalAlignment" Value="Center"/>
                    <Setter Property="BorderBrush"       Value="Orange"/>
                    <Setter Property="Margin"            Value="10,0"/>
                </Style>

                <Style x:Key="RadChartLegendStyle" TargetType="telerik:ChartLegend">
                    <Setter Property="Background"        Value="Transparent"/>
                    <Setter Property="Foreground"        Value="Orange"/>
                    <Setter Property="VerticalAlignment" Value="Center"/>
                    <Setter Property="BorderBrush"       Value="Orange"/>
                    <Setter Property="Margin"            Value="10,0"/>
                    <Setter Property="FontSize"          Value="10"/>
                </Style>
                
                <Style x:Key="ItemLabelStyle" TargetType="TextBlock">
                    <Setter Property="Foreground" Value="Orange" />
                </Style>

                <Style x:Key="AxisTitleStyle" TargetType="telerik:AxisTitle">
                    <Setter Property="Foreground" Value="Orange" />
                </Style>

                <Style x:Key="DataPointStyle" TargetType="toolkit:LineDataPoint">
                    <Setter Property="Visibility" Value="Collapsed"/>
                    <Setter Property="Opacity" Value="0" />
                    <Setter Property="BorderBrush" Value="White"/>
                    <Setter Property="BorderThickness" Value="2"/>
                    <Setter Property="IsTabStop" Value="False"/>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="toolkit:LineDataPoint">
                                <Grid x:Name="Root" Opacity="1">
                                    <ToolTipService.ToolTip>
                                        <StackPanel Margin="3">
                                            <sdk:Label Content="{TemplateBinding DependentValue}"/>

                                        </StackPanel>
                                    </ToolTipService.ToolTip>
                                    <Ellipse StrokeThickness="{TemplateBinding BorderThickness}" Stroke="{TemplateBinding BorderBrush}" Fill="{TemplateBinding Background}"/>
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </ResourceDictionary>
        </UserControl.Resources>
        
        <Grid x:Name="LayoutRoot" Style="{StaticResource TwoFactorGridGradient}">
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="SeriesDisplayed">
                    <VisualStateGroup.Transitions>
                        <VisualTransition GeneratedDuration="0:0:0.3"/>
                        <VisualTransition From="OAS" GeneratedDuration="0:0:0.3"/>
                        <VisualTransition From="USDEquivSpread" GeneratedDuration="0:0:0.3"/>
                        <VisualTransition From="Basis" GeneratedDuration="0:0:0.3"/>
                    </VisualStateGroup.Transitions>

                    <VisualState x:Name="OAS">
                        <Storyboard>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Control.IsEnabled)" Storyboard.TargetName="radUSDEquivHistory">
                                <DiscreteObjectKeyFrame KeyTime="0">
                                    <DiscreteObjectKeyFrame.Value>
                                        <System:Boolean>False</System:Boolean>
                                    </DiscreteObjectKeyFrame.Value>
                                </DiscreteObjectKeyFrame>
                            </ObjectAnimationUsingKeyFrames>
                            <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="radUSDEquivHistory" d:IsOptimized="True"/>
                            <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="radBasis" d:IsOptimized="True"/>
                        </Storyboard>
                    </VisualState>
                    <VisualState x:Name="USDEquivSpread">
                        <Storyboard>
                            <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="radOASHistory" d:IsOptimized="True"/>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Control.IsEnabled)" Storyboard.TargetName="radOASHistory">
                                <DiscreteObjectKeyFrame KeyTime="0">
                                    <DiscreteObjectKeyFrame.Value>
                                        <System:Boolean>False</System:Boolean>
                                    </DiscreteObjectKeyFrame.Value>
                                </DiscreteObjectKeyFrame>
                            </ObjectAnimationUsingKeyFrames>
                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Control.IsEnabled)" Storyboard.TargetName="radUSDEquivHistory">
                                <DiscreteObjectKeyFrame KeyTime="0">
                                    <DiscreteObjectKeyFrame.Value>
                                        <System:Boolean>True</System:Boolean>
                                    </DiscreteObjectKeyFrame.Value>
                                </DiscreteObjectKeyFrame>
                            </ObjectAnimationUsingKeyFrames>
                            <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="radUSDEquivHistory" d:IsOptimized="True"/>
                            <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="radBasis" d:IsOptimized="True"/>
                        </Storyboard>
                    </VisualState>
                    <VisualState x:Name="Basis">
                    <Storyboard>
                    <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="radOASHistory" d:IsOptimized="True"/>
                    <DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="radUSDEquivHistory" d:IsOptimized="True"/>
                    </Storyboard>
                    </VisualState>
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
            
            <Border x:Name="borderTop" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderThickness="0" Margin="0"
                    Background="Transparent" 
                    MouseLeftButtonDown="Border_MouseRightButtonDown" 
                    KeyDown="Border_KeyDown">
                <menu:ContextMenuService.ContextMenu>
                    <menu:ContextMenu>
                        <menu:MenuItem x:Name="CopyMenuItem" Header="Copy Graph" Click="CopyMenuItem_Click" FontSize="12">
                        </menu:MenuItem>
                        <menu:MenuItem x:Name="CopyData" Header="Copy Data" Click="CopyData_Click" FontSize="12"/>
                    </menu:ContextMenu>
                </menu:ContextMenuService.ContextMenu>
                <Grid Background="Transparent">
                    <TextBox x:Name="InvisibleTop" IsTabStop="True" Foreground="Transparent" Background="Transparent" Width="0" />

                    <Viewbox HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Uniform" >
                        <Grid Background="Transparent">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>

                            <Button x:Name="btnClose" Grid.Row="0" Content="Close" HorizontalAlignment="Left" VerticalAlignment="Top" FontWeight="Bold" Click="btnClose_Click" />

                            <ComboBox x:Name="comboBoxSeries" Grid.Row="0" Width="170" SelectionChanged="ComboBoxSeriesSelectionChanged" HorizontalContentAlignment="Center">
                                <ComboBoxItem Content="OAS" IsSelected="True"/>
                                <ComboBoxItem Content="USD Equivalent Spread"/>
                                <ComboBoxItem Content="Basis"/>
                            </ComboBox>

                            <ToggleButton x:Name="tglLegend" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Top" Content="Hide Legend" FontWeight="Bold" Checked="ToggleButton_Checked" Unchecked="ToggleButton_Unchecked" />

                            <telerik:RadChart x:Name="radOASHistory" Grid.Row="1" Margin="0,0,0,0" UseLayoutRounding="True" BorderThickness="0" Background="Transparent"
                                                VerticalAlignment="Top" VerticalContentAlignment="Stretch" HorizontalAlignment="Left" HorizontalContentAlignment="Stretch"
                                                Height="500" Width="1300" MinHeight="300" MinWidth="700" MaxHeight="700" MaxWidth="1300"
                                                LegendStyle="{StaticResource RadChartLegendStyle}"
    Visibility="Visible"
                            >

                                <telerik:RadChart.DefaultView>
                                    <telerik:ChartDefaultView>
                                        <telerik:ChartDefaultView.ChartLegend>
                                            <telerik:ChartLegend Header="" />
                                        </telerik:ChartDefaultView.ChartLegend>

                                        <telerik:ChartDefaultView.ChartArea>
                                            <telerik:ChartArea PlotAreaStyle="{StaticResource RadChartPlotAreaStyle}">

                                                <telerik:ChartArea.AnimationSettings>
                                                    <telerik:AnimationSettings ItemDelay="00:00:00.0" ItemAnimationDuration="00:00:00" DefaultSeriesDelay="00:00:00" />
                                                </telerik:ChartArea.AnimationSettings>

                                                <telerik:ChartArea.AxisX>
                                                    <telerik:AxisX AutoRange="True" IsDateTime="True" StripLinesVisibility="Collapsed"
                                                                   LayoutMode="Normal" DefaultLabelFormat="MM/dd/yyyy" LabelRotationAngle="45">
                                                        <telerik:AxisX.AxisStyles>
                                                            <telerik:AxisStyles ItemLabelStyle="{StaticResource ItemLabelStyle}" />
                                                        </telerik:AxisX.AxisStyles>
                                                    </telerik:AxisX>
                                                </telerik:ChartArea.AxisX>

                                                <telerik:ChartArea.AxisY>
                                                    <telerik:AxisY Title="OAS [bp/yr]" AxisLabelsVisibility="Collapsed" StripLinesVisibility="Collapsed">
                                                        <telerik:AxisY.AxisStyles>
                                                            <telerik:AxisStyles ItemLabelStyle="{StaticResource ItemLabelStyle}" TitleStyle="{StaticResource AxisTitleStyle}" />
                                                        </telerik:AxisY.AxisStyles>
                                                    </telerik:AxisY>
                                                </telerik:ChartArea.AxisY>

                                                <telerik:ChartArea.AdditionalYAxes>
                                                    <telerik:AxisY AutoRange="True" StripLinesVisibility="Collapsed">
                                                        <telerik:AxisY.AxisStyles>
                                                            <telerik:AxisStyles ItemLabelStyle="{StaticResource ItemLabelStyle}" />
                                                        </telerik:AxisY.AxisStyles>
                                                    </telerik:AxisY>
                                                </telerik:ChartArea.AdditionalYAxes>

                                            </telerik:ChartArea>
                                        </telerik:ChartDefaultView.ChartArea>
                                    </telerik:ChartDefaultView>
                                </telerik:RadChart.DefaultView>

                                <telerik:RadChart.SeriesMappings>
                                    <telerik:SeriesMapping>
                                        <telerik:SeriesMapping.SeriesDefinition>
                                            <telerik:LineSeriesDefinition ShowItemLabels="False" ShowPointMarks="False" />
                                        </telerik:SeriesMapping.SeriesDefinition>
                                        <telerik:SeriesMapping.ItemMappings>
                                            <telerik:ItemMapping DataPointMember="YValue" />
                                        </telerik:SeriesMapping.ItemMappings>

                                    </telerik:SeriesMapping>
                                </telerik:RadChart.SeriesMappings>

                            </telerik:RadChart>

                            <telerik:RadChart x:Name="radUSDEquivHistory" Grid.Row="1" Margin="0,0,0,0" UseLayoutRounding="True" BorderThickness="0" Background="Transparent"
                                                VerticalAlignment="Top" VerticalContentAlignment="Stretch" HorizontalAlignment="Left" HorizontalContentAlignment="Stretch"
                                                Height="500" Width="1300" MinHeight="300" MinWidth="700" MaxHeight="700" MaxWidth="1300"
                                                LegendStyle="{StaticResource RadChartLegendStyle}"
    Visibility="Visible"
                            >

                                <telerik:RadChart.DefaultView>
                                    <telerik:ChartDefaultView>
                                        <telerik:ChartDefaultView.ChartLegend>
                                            <telerik:ChartLegend Header="" />
                                        </telerik:ChartDefaultView.ChartLegend>

                                        <telerik:ChartDefaultView.ChartArea>
                                            <telerik:ChartArea PlotAreaStyle="{StaticResource RadChartPlotAreaStyle}">

                                                <telerik:ChartArea.AnimationSettings>
                                                    <telerik:AnimationSettings ItemDelay="00:00:00.0" ItemAnimationDuration="00:00:00" DefaultSeriesDelay="00:00:00" />
                                                </telerik:ChartArea.AnimationSettings>

                                                <telerik:ChartArea.AxisX>
                                                    <telerik:AxisX AutoRange="True" IsDateTime="True" StripLinesVisibility="Collapsed"
                                                                   LayoutMode="Normal" DefaultLabelFormat="MM/dd/yyyy" LabelRotationAngle="45">
                                                        <telerik:AxisX.AxisStyles>
                                                            <telerik:AxisStyles ItemLabelStyle="{StaticResource ItemLabelStyle}" />
                                                        </telerik:AxisX.AxisStyles>
                                                    </telerik:AxisX>
                                                </telerik:ChartArea.AxisX>

                                                <telerik:ChartArea.AxisY>
                                                    <telerik:AxisY Title="OAS [bp/yr]" AxisLabelsVisibility="Collapsed" StripLinesVisibility="Collapsed">
                                                        <telerik:AxisY.AxisStyles>
                                                            <telerik:AxisStyles ItemLabelStyle="{StaticResource ItemLabelStyle}" TitleStyle="{StaticResource AxisTitleStyle}" />
                                                        </telerik:AxisY.AxisStyles>
                                                    </telerik:AxisY>
                                                </telerik:ChartArea.AxisY>

                                                <telerik:ChartArea.AdditionalYAxes>
                                                    <telerik:AxisY AutoRange="True" StripLinesVisibility="Collapsed">
                                                        <telerik:AxisY.AxisStyles>
                                                            <telerik:AxisStyles ItemLabelStyle="{StaticResource ItemLabelStyle}" />
                                                        </telerik:AxisY.AxisStyles>
                                                    </telerik:AxisY>
                                                </telerik:ChartArea.AdditionalYAxes>

                                            </telerik:ChartArea>
                                        </telerik:ChartDefaultView.ChartArea>
                                    </telerik:ChartDefaultView>
                                </telerik:RadChart.DefaultView>

                                <telerik:RadChart.SeriesMappings>
                                    <telerik:SeriesMapping>
                                        <telerik:SeriesMapping.SeriesDefinition>
                                            <telerik:LineSeriesDefinition ShowItemLabels="False" ShowPointMarks="False" />
                                        </telerik:SeriesMapping.SeriesDefinition>
                                        <telerik:SeriesMapping.ItemMappings>
                                            <telerik:ItemMapping DataPointMember="YValue" />
                                        </telerik:SeriesMapping.ItemMappings>

                                    </telerik:SeriesMapping>
                                </telerik:RadChart.SeriesMappings>
                            </telerik:RadChart>

                            <telerik:RadChart x:Name="radBasis" Grid.Row="1" Margin="0,0,0,0" UseLayoutRounding="True" BorderThickness="0" Background="Transparent"
                                                VerticalAlignment="Top" VerticalContentAlignment="Stretch" HorizontalAlignment="Left" HorizontalContentAlignment="Stretch"
                                                Height="500" Width="1300" MinHeight="300" MinWidth="700" MaxHeight="700" MaxWidth="1300"
                                                LegendStyle="{StaticResource RadChartLegendStyle}"
    Visibility="Visible"
                            >
                                <telerik:RadChart.DefaultView>
                                    <telerik:ChartDefaultView>
                                        <telerik:ChartDefaultView.ChartLegend>
                                            <telerik:ChartLegend Header="" />
                                        </telerik:ChartDefaultView.ChartLegend>

                                        <telerik:ChartDefaultView.ChartArea>
                                            <telerik:ChartArea PlotAreaStyle="{StaticResource RadChartPlotAreaStyle}" ItemToolTipOpening="ChartArea_ItemToolTipOpening">
                                                
                                                <telerik:ChartArea.AnimationSettings>
                                                    <telerik:AnimationSettings ItemDelay="00:00:00.0" ItemAnimationDuration="00:00:00" DefaultSeriesDelay="00:00:00" />
                                                </telerik:ChartArea.AnimationSettings>

                                                <telerik:ChartArea.AxisX>
                                                    <telerik:AxisX AutoRange="True" IsDateTime="True" StripLinesVisibility="Collapsed"
                                                                   LayoutMode="Normal" DefaultLabelFormat="MM/dd/yyyy" LabelRotationAngle="45">
                                                        <telerik:AxisX.AxisStyles>
                                                            <telerik:AxisStyles ItemLabelStyle="{StaticResource ItemLabelStyle}" />
                                                        </telerik:AxisX.AxisStyles>
                                                    </telerik:AxisX>
                                                </telerik:ChartArea.AxisX>

                                                <telerik:ChartArea.AxisY>
                                                    <telerik:AxisY Title="OAS [bp/yr]" AxisLabelsVisibility="Collapsed" StripLinesVisibility="Collapsed">
                                                        <telerik:AxisY.AxisStyles>
                                                            <telerik:AxisStyles ItemLabelStyle="{StaticResource ItemLabelStyle}" TitleStyle="{StaticResource AxisTitleStyle}" />
                                                        </telerik:AxisY.AxisStyles>
                                                    </telerik:AxisY>
                                                </telerik:ChartArea.AxisY>

                                                <telerik:ChartArea.AdditionalYAxes>
                                                    <telerik:AxisY AutoRange="True" StripLinesVisibility="Collapsed">
                                                        <telerik:AxisY.AxisStyles>
                                                            <telerik:AxisStyles ItemLabelStyle="{StaticResource ItemLabelStyle}" />
                                                        </telerik:AxisY.AxisStyles>
                                                    </telerik:AxisY>
                                                </telerik:ChartArea.AdditionalYAxes>

                                            </telerik:ChartArea>
                                        </telerik:ChartDefaultView.ChartArea>
                                    </telerik:ChartDefaultView>
                                </telerik:RadChart.DefaultView>
                            </telerik:RadChart>

                        </Grid>

                    </Viewbox>
                </Grid>
            </Border>

        </Grid>
    </UserControl>


            public void ProcessRadChart(ObservableCollection<PcyaSimServiceReference.PCYAsimServiceHistoryItem> results)
            {
                if (results                                                 == null ||
                    results.Count                                           == 0)
                    return;

                _data                                                        = results;

                tglLegend.IsChecked                                          = true;

                radOASHistory.SeriesMappings.Clear();
                radUSDEquivHistory.SeriesMappings.Clear();
                radBasis.SeriesMappings.Clear();

                PcyaSimServiceReference.PCYAsimServiceHistoryItem hi;
                SeriesMapping        seriesMapping;
                SeriesMapping        seriesMapping2;
                SeriesMapping        seriesMapping3;
                ChartLegendItem      legendItem;
                ChartLegendItem      legendItem2;
                ChartLegendItem      legendItem3;
                SolidColorBrush      lineColor;
                LineSeriesDefinition line;

                for (int idx = 0; idx < results.Count; idx++)
                {
                    hi                                                       = results[idx];
                    seriesMapping                                            = new SeriesMapping();
                    seriesMapping2                                           = new SeriesMapping();
                    seriesMapping3                                           = new SeriesMapping();

                    legendItem                                               = new ChartLegendItem();
                    legendItem2                                              = new ChartLegendItem();
                    legendItem3                                              = new ChartLegendItem();
                    legendItem.Label                                         = hi.Description;
                    legendItem2.Label                                        = hi.Description;
                    legendItem3.Label                                        = hi.Description;

                    if (idx                                                  < Colors.Length)
                        lineColor                                            = new SolidColorBrush(Colors[idx]);
                    else
                        lineColor                                            = new SolidColorBrush(GenerateRandomColor());

                    legendItem.Foreground                                    = lineColor;
                    legendItem2.Foreground                                   = lineColor;
                    legendItem3.Foreground                                   = lineColor;
                    legendItem.MarkerFill                                    = lineColor;
                    legendItem2.MarkerFill                                   = lineColor;
                    legendItem3.MarkerFill                                   = lineColor;

                    radOASHistory.DefaultView.ChartLegend.Items.Add(legendItem);
                    radUSDEquivHistory.DefaultView.ChartLegend.Items.Add(legendItem2);
                    radBasis.DefaultView.ChartLegend.Items.Add(legendItem3);

                    line                                                     = new LineSeriesDefinition
                                                                                {
                                                                                    ShowItemLabels   = false,
                                                                                    ShowPointMarks   = false,
                                                                                    ShowItemToolTips = true
                                                                                };

                    line.ItemToolTipFormat                                   = "Value: #YValue{C4}\nDate: #XValue{C4}\nSeries: #DATAITEM.Description";

                    line.Appearance.Stroke                                   = lineColor;
                    line.Appearance.Fill                                     = lineColor;  

                    seriesMapping.SeriesDefinition                           = line;
                    seriesMapping2.SeriesDefinition                          = line;
                    seriesMapping3.SeriesDefinition                          = line;

                    seriesMapping.ItemMappings.Add(new ItemMapping("PriceDate", DataPointMember.XValue));
                    seriesMapping.ItemMappings.Add(new ItemMapping("Value",     DataPointMember.YValue));

                    seriesMapping2.ItemMappings.Add(new ItemMapping("PriceDate", DataPointMember.XValue));
                    seriesMapping2.ItemMappings.Add(new ItemMapping("Value",     DataPointMember.YValue));

                    seriesMapping3.ItemMappings.Add(new ItemMapping("PriceDate", DataPointMember.XValue));
                    seriesMapping3.ItemMappings.Add(new ItemMapping("Value",     DataPointMember.YValue));

                    seriesMapping.ItemsSource                                = hi.OAS;
                    seriesMapping2.ItemsSource                               = hi.USDEquivSpread;
                    seriesMapping3.ItemsSource                               = hi.Basis;

                    radOASHistory.SeriesMappings.Add(seriesMapping);
                    radUSDEquivHistory.SeriesMappings.Add(seriesMapping2);
                    radBasis.SeriesMappings.Add(seriesMapping3);
                }

                if (ProcessedOAS                                            != null)
                    ProcessedOAS(this, new EventArgs());
            }

            private void ChartArea_ItemToolTipOpening(ItemToolTip2D tooltip, ItemToolTipEventArgs e)
            {
            }

  2. Petar Marchev
    Admin
    Petar Marchev avatar
    968 posts

    Posted 08 Aug 2012 Link to this post

    Hello Mark,

    I was able to create a new Silverlight project based on your code. I had to remove some thing, alter others and do some guessing and write some new code in order to compile it and run it. When I ran the project I saw a chart with a single line series and I tested the ItemToolTipOpening event. In my tests the event was raised properly. I have attached a snapshot, which I took when I hit the break-point.

    I am attaching to this post the project in mind and the snapshot. Do try it and see if you get the same behavior. If you do get the same behavior, then I guess some of the other things that are missing in my project and are present in yours, are interfering with the tool tip proper behavior and I am sure that you will be able to find the reason quickly.  

    All the best,
    Petar Marchev
    the Telerik team

    Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.

  3. DevCraft banner
Back to Top