2017-04-10 5 views
2

최신 버전의 SciChart로 업데이트하기 전에 "롤오버 한"특정 포인트에 대해 여러 값을 표시하는 사용자 정의 롤오버 수정자가있었습니다.SciChart : 코드에서 바인딩 된 다중 데이터 시스템에 대한 사용자 정의 RolloverModifierLabel

<sci:RolloverModifier 
    DrawVerticalLine="True" 
    ShowTooltipOn="Always" 
    SourceMode="AllVisibleSeries" 
    TooltipLabelTemplate="{StaticResource RolloverLabelTemplate}" /> 

RolloverLabelTemplate은 ControlTemplate이 있었다 : 그것은 다음과 같이 구현 이제 RolloverModifier.TooltipLabelTemplate는 API에서 사라

<ControlTemplate 
    x:Key="RolloverLabelTemplate" 
    TargetType="sci:TemplatableControl"> 
    <Grid> 
    ... 

과 DataTemplate을 소요 TooltipTemplate,하지로 대체 될 것으로 보인다 ControlTemplate. 나는 유사한 DataTemplate을 만드는 시도 :

<DataTemplate 
x:Key="SomeTemplate" 
DataType="s:XySeriesInfo"> 
<Grid> 

을하지만 나는 RolloverModifier에

<s:RolloverModifier 
    ... 
    TooltipTemplate="{StaticResource SomeTemplate}" /> 

를 할당하려고 할 때 다음과 같은 예외를 얻을 :

유형의 개체를 캐스팅 할 수 없습니다 'SciChart.Charting.ChartModifiers.RolloverModifier'를 입력하여 'SciChart.Charting.Visuals.RenderableSeries.BaseRenderableSeries'를 입력합니다.

및 툴팁 템플릿을 스타일링의 주제에 https://www.scichart.com/documentation/v4.x/webframe.html#RolloverModifier.html는, 그것이 RolloverModifier을 가지고 제안하지만, RenderableSeries에 TooltipTemplate을 추가 :

<s:SciChartSurface.RenderableSeries> 
     <s:FastLineRenderableSeries s:RolloverModifier.TooltipTemplate="{StaticResource XyTooltipTemplate}"/>        
    </s:SciChartSurface.RenderableSeries>   

    <s:SciChartSurface.ChartModifier> 
     <s:ModifierGroup> 
     <s:RolloverModifier ShowTooltipOn="Always" />     
     </s:ModifierGroup> 
    </s:SciChartSurface.ChartModifier> 
</s:SciChartSurface> 

나는이 문서를 따라하기 위해 노력했습니다

xaml에 정의 된 RenderableSeries가 없기 때문에 이것은 나에게 문제가됩니다.

<sciVisuals:SciChartSurface 
    ... 
    SeriesSource="{Binding SciSeries}"> 

하나보다 더있을 것입니다, 사실 난 얼마나 많은 몰라 : 그들은 뷰 모델에 바인딩됩니다. 이 경우 롤오버 툴팁 레이블을 어떻게 사용자 정의 할 수 있습니까?

답변

1

SciChart WPF v4.x 이상에서는 많은 사용자가 시리즈 스타일을 개별적으로 지정할 수있는 기능을 요청했기 때문에 시리즈에 TooltipTemplate을 적용해야합니다. 예를 들어, 촛대 시리즈에는 선 시리즈와 다른 툴팁이 있어야합니다.

V4 +에서 SciChart WPF Documentation for applying a RolloverModifier TooltipTemplate를 참조하십시오

는 기본적으로

SciChart이 시리즈의 유형에 고유 한 도구 설명 템플릿을 가지고 있습니다 도구 설명 항목 템플릿을 스타일링.

<s:SciChartSurface > 
    <s:SciChartSurface.Resources> 
     <!-- Tooltip Template for an XyDataSeries binds to XySeriesInfo --> 
     <!-- Check out the properties on XySeriesInfo to see what you can bind to --> 
     <DataTemplate x:Key="XyTooltipTemplate" DataType="s:XySeriesInfo"> 
     <StackPanel Orientation="Vertical">    
      <TextBlock Foreground="White"> 
       <Run Text="Series: "/> 
       <Run Text="{Binding SeriesName, StringFormat='{}{0}:'}"/> 
      </TextBlock>    
      <TextBlock Foreground="White"> 
       <Run Text="X-Value: "/> 
       <Run Text="{Binding FormattedXValue}"/> 
      </TextBlock> 
      <TextBlock Foreground="White"> 
       <Run Text="Y-Value: "/> 
       <Run Text="{Binding FormattedYValue}"/> 
      </TextBlock> 
     </StackPanel> 
     </DataTemplate> 
    </s:SciChartSurface.Resources> 
    <s:SciChartSurface.RenderableSeries> 
     <s:FastLineRenderableSeries s:RolloverModifier.TooltipTemplate="{StaticResource XyTooltipTemplate}"/>        
    </s:SciChartSurface.RenderableSeries>   
    <s:SciChartSurface.ChartModifier> 
     <s:ModifierGroup> 
     <s:RolloverModifier ShowTooltipOn="Always" />     
     </s:ModifierGroup> 
    </s:SciChartSurface.ChartModifier> 
</s:SciChartSurface> 

내가이 MVVM API를 사용에도 불구하고 이러한 스타일을하기 위해 제안하는 XAML에서 스타일을 만들고 SeriesBinding MVVM API를 사용하여 적용하는 것입니다 :
을 사용하여 RolloverModifier.TooltipTemplate 연결된 속성을 도구 설명 템플릿을 변경합니다.

SciChart WPF 설명서의 FAQ는 how to style a tooltip when using the MVVM API here입니다.

많은 고객이 MVVM API에서 SciChart에 사용되는 다양한 부착 된 속성의 스타일을 지정하는 방법을 묻습니다. 예를 들어 첨부 된 다음 속성을 MVVM API로 변환하려면 어떻게해야합니까?

Worked Example - Style a Series in MVVM에 제시된 RenderableSeries 스타일링 방법을 사용하면 간단합니다.

첨부 된 속성 및 툴팁 템플릿을보기의 스타일로 간단하게 선언하십시오.

이제 BaseRenderableSeriesViewModel.StyleKey 속성을 사용하여 스타일을 적용하십시오. SciChart는 스타일을 고수하고 나머지는 할 것입니다.

여전히 (이 4.x 버전의로 폐지되어 있습니다) 그럼 내가 제안 XAML에서 스타일을 선언하고 this technique to access a style in code-behind를 사용하여 적용 이전, SeriesSource의 API를 사용하는 경우.

+2

귀하는 선생님이며 신사입니다. – Shaggydog

+0

유용한 정보이지만 툴팁에 대한 DataTemplate을 만드는 것과 비슷한 작업을 수행 할 수 있습니까 (TooltipTemplate에서 할 수있는 것처럼)? – colmde

+0

아니요, SciChart v4에서 툴팁이 시리즈로 이동되었으므로 시리즈별로 툴팁이 필요합니다. 예를 들어, 촛대 시리즈는 선 시리즈와 다른 템플리트가 필요합니다. 원하는 경우 WPF의 암시 적 스타일 기능을 사용하여 모든 시리즈에 하나의 템플릿을 적용 할 수 있습니다. https://wpf.2000things.com/tag/implicit-style/ 스타일 만들기, TargetType = BaseRenderableSeries, x : Key 없음 SciChartSurface.Resources 안에이 스타일을 포함시킵니다. 시도해보십시오 :) –