Я пытаюсь настроить внешний вид всплывающих подсказок RolloverModifier
, которые появляются на линейной диаграмме SciChart, используя DataTemplate
(в сочетании с атрибутом TooltipTemplate
атрибута RolloverModifier
, но не могу понять это.
Вот мой DataTemplate
, который я максимально упростил, чтобы заставить его работать.
<DataTemplate x:Key="ChartToolTipTemplate" DataType="{x:Type s:SeriesInfo}">
<TextBlock Text="Hello" />
</DataTemplate>
Что я уже пробовал:
Первый:
<s:RolloverModifier x:Name="RolloverModifier" TooltipTemplate="{StaticResource ChartToolTipTemplate}">
но я получаю сообщение об ошибке:
Невозможно привести объект типа «SciChart.Charting.ChartModifiers.RolloverModifier» к типу «SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries».
Из исследований в Интернете кажется, что я должен делать следующее:
<s:SciChartSurface.RenderableSeries>
<s:FastLineRenderableSeries s:TooltipModifier.TooltipTemplate="{StaticResource TooltipTemplate}"
s:TooltipModifier.IncludeSeries="True"
s:SeriesValueModifier.IncludeSeries="False"/>
</s:SciChartSurface.RenderableSeries>
Однако для меня это бесполезно, так как мой RenderableSeries
привязан к ObservableCollection<IRenderableSeries>
в моей ViewModel.
<s:SciChartSurface
x:Name="SciChart"
Grid.Column="0"
Annotations="{Binding Annotations}"
GridLinesPanelStyle="{StaticResource GridLinesPanelStyle}"
RenderableSeries="{Binding ChartSeries}"
Style="{StaticResource SurfaceStyle}">
Предложение по аналогичному вопросу заключалось в том, чтобы использовать ObservableCollection<IRenderableSeriesViewModel>
и установить стиль в ViewModel в соответствии с этой страницей в документации: Привязать шаблоны всплывающей подсказки или присоединенные свойства в MVVM, но я не смог понять как преобразовать мой IRenderableSeries
в LineRenderableSeriesViewModel
и получил пустую диаграмму.
Другое предложение в этом похожем вопросе (SciChart: Custom RolloverModifierLabel для нескольких DataSeries связанный с кодом должен был использовать неявный стиль, поэтому я добавил
<s:SciChartSurface.Resources>
<Style TargetType="s:BaseRenderableSeries">
<Setter Property="s:RolloverModifier.TooltipTemplate" Value="{StaticResource ChartToolTipTemplate}" />
<Setter Property="s:RolloverModifier.IncludeSeries" Value="True" />
<Setter Property="s:RolloverModifier.IsEnabled" Value="True" />
<Setter Property="FontSize" Value="30" />
</Style>
</s:SciChartSurface.Resources>
И сохранил
<s:SciChartSurface.ChartModifier>
<s:ModifierGroup>
<s:LegendModifier
x:Name="LegendModifier"
Margin="10"
HorizontalAlignment="Right"
LegendTemplate="{StaticResource LegendTemplate}"
Orientation="Horizontal"
ShowLegend="{Binding ShowLegend}"
ShowVisibilityCheckboxes="False" />
<s:RolloverModifier x:Name="RolloverModifier" />
<s:SeriesSelectionModifier>
<s:SeriesSelectionModifier.SelectedSeriesStyle>
<Style TargetType="s:BaseRenderableSeries">
<Setter Property="Stroke" Value="DeepPink" />
<Setter Property="StrokeThickness" Value="3" />
</Style>
</s:SeriesSelectionModifier.SelectedSeriesStyle>
</s:SeriesSelectionModifier>
</s:ModifierGroup>
</s:SciChartSurface.ChartModifier>
Но стиль никак не влияет на всплывающие подсказки (даже бит FontSize
, который я только что вставил, чтобы проверить, работает ли он вообще). Удаление этой строки полностью удаляет всплывающие подсказки.