2016-04-15 22 views
1

CursorModifierでツールチップを表示しています。私のツールチップがSciChartSurfaceより大きく、全体のツールチップを表示するためにClipModifierSurface = "False"を使用しています。しかしこの場合、軸ラベルとスクロールバーはツールチップの上にあります。
説明されている問題は、注目アプリ>科学グラフ>オシロスコープデモでご覧いただけます。
チャートの上にツールチップを表示する方法はありますか?これを行うには軸の上にツールチップを表示し、スクロールバー

おかげ

答えて

0

唯一の方法は、PART_TopAxisArea/PART_LeftAxisArea/PART_BottomAxisArea/PART_RightAxisAreaよりも高いPART_ChartModifierSurfaceを移動するために、全体SciChartSurfaceをretemplateすることです。

SciChartSurfaceのデフォルトコントロールテンプレートは以下のとおりです。コンバータはまた、私はツールチップのサイズを最小化(グラフ全体をカバーするツールチップが実際に使用可能ではありません!)、または、他のどこかのデータを配置するTooltipModifier、RolloverModifierのSeriesInfo出力に結合することをお勧めSciChartライブラリに

<ControlTemplate TargetType="visuals:SciChartSurface"> 
    <Border Background="{TemplateBinding Background}" 
      Padding="{TemplateBinding Padding}" 
      ap:Device.SnapsToDevicePixels="True"> 

     <visuals:MainGrid x:Name="PART_MainGrid" ap:Device.SnapsToDevicePixels="True"> 
      <visuals:MainGrid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="*" MinWidth="10" /> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="Auto" /> 
      </visuals:MainGrid.ColumnDefinitions> 
      <visuals:MainGrid.RowDefinitions> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="*" MinHeight="10" /> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="Auto" /> 
      </visuals:MainGrid.RowDefinitions> 

      <!-- Chart Title --> 
      <TextBlock Grid.Column="2" 
         Margin="0,0,0,9" 
         HorizontalAlignment="Center" 
         VerticalAlignment="Center" 
         FontSize="{TemplateBinding FontSize}" 
         FontWeight="{TemplateBinding FontWeight}" 
         Foreground="{TemplateBinding Foreground}" 
         Text="{TemplateBinding ChartTitle}" 
         Visibility="{Binding ChartTitle, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource CollapseIfNullOrEmptyStringConverter}}" /> 

      <!-- GridLines panel (legacy, gridlines now in RenderSurface, but panel left for border and background --> 
      <axes:GridLinesPanel x:Name="PART_GridLinesArea" 
           Grid.Row="3" 
           Grid.Column="2" 
           HorizontalAlignment="Stretch" 
           VerticalAlignment="Stretch" 
           IsTabStop="False" 
           Style="{TemplateBinding GridLinesPanelStyle}" 
           ap:Device.SnapsToDevicePixels="True" /> 

      <themes:PolarPanel Grid.Row="3" 
           Grid.Column="2" 
           StretchToSize="{Binding IsPolarChart, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InvertBooleanConverter}}" 
           ap:Device.SnapsToDevicePixels="True"> 
       <Grid HorizontalAlignment="Stretch" 
         VerticalAlignment="Stretch" 
         ap:Device.SnapsToDevicePixels="True"> 

        <!-- Annotations behind chart series --> 
        <a:AnnotationSurface x:Name="PART_AnnotationsUnderlaySurface" 
             HorizontalAlignment="Stretch" 
             VerticalAlignment="Stretch" 
             ap:ClipToBoundsHelper.ClipToEllipseBounds="{TemplateBinding IsPolarChart}" 
             ap:ClipToBoundsHelper.ClipToBounds="{TemplateBinding ClipUnderlayAnnotations}" 
             ap:Device.SnapsToDevicePixels="True" /> 

        <!-- Render Surface (Chart Series) --> 
        <ContentControl HorizontalContentAlignment="Stretch" 
            VerticalContentAlignment="Stretch" 
            Content="{TemplateBinding RenderSurface}" 
            IsTabStop="False" 
            ap:ClipToBoundsHelper.ClipToEllipseBounds="{TemplateBinding IsPolarChart}" 
            ap:Device.SnapsToDevicePixels="True" /> 

        <axes:AxisArea x:Name="PART_CenterYAxisArea" 
            ap:ClipToBoundsHelper.ClipToEllipseBounds="{TemplateBinding IsPolarChart}" 
            ItemsPanel="{TemplateBinding CenterYAxesPanelTemplate}" 
            ap:Device.SnapsToDevicePixels="True" /> 

        <!-- Annotations over the chart series --> 
        <a:AnnotationSurface x:Name="PART_AnnotationsOverlaySurface" 
             HorizontalAlignment="Stretch" 
             VerticalAlignment="Stretch" 
             ap:ClipToBoundsHelper.ClipToEllipseBounds="{TemplateBinding IsPolarChart}" 
             ap:ClipToBoundsHelper.ClipToBounds="{TemplateBinding ClipOverlayAnnotations}" 
             ap:Device.SnapsToDevicePixels="True" /> 

        <!-- Modifier canvas, e.g. rubber band rectangles, rollover --> 
        <visuals:ChartModifierSurface x:Name="PART_ChartModifierSurface" 
                HorizontalAlignment="Stretch" 
                VerticalAlignment="Stretch" 
                ClipToBounds="{TemplateBinding ClipModifierSurface}" 
                IsPolarChart="{TemplateBinding IsPolarChart}" 
                IsTabStop="False" 
                ap:Device.SnapsToDevicePixels="True" /> 

        <!-- Adorners, e.g. annotation resize --> 
        <Canvas x:Name="PART_ChartAdornerLayer" 
          HorizontalAlignment="Stretch" 
          VerticalAlignment="Stretch" 
          ap:ClipToBoundsHelper.ClipToBounds="{TemplateBinding ClipModifierSurface}" 
          ap:ClipToBoundsHelper.ClipToEllipseBounds="{TemplateBinding IsPolarChart}" 
          ap:Device.SnapsToDevicePixels="True"> 
         <Canvas.Resources> 
          <Style TargetType="Thumb"> 
           <Setter Property="BorderThickness" Value="2" /> 
           <Setter Property="IsTabStop" Value="False" /> 
           <Setter Property="Cursor" Value="Hand" /> 
           <Setter Property="BorderBrush" Value="{me:ThemeBinding DefaultAnnotationsGripsBorderBrush}" /> 
           <Setter Property="Background" Value="{me:ThemeBinding DefaultAnnotationsGripsBackroundBrush}" /> 
           <Setter Property="Width" Value="{s:Static Member=visuals:ManipulationMargins.AnnotationResizingMaxSize}" /> 
           <Setter Property="Height" Value="{s:Static Member=visuals:ManipulationMargins.AnnotationResizingMaxSize}" /> 
           <Setter Property="Template"> 
            <Setter.Value> 
             <ControlTemplate TargetType="Thumb"> 
              <Grid> 
               <VisualStateManager.VisualStateGroups> 
                <VisualStateGroup x:Name="CommonStates"> 
                 <VisualState x:Name="Normal" /> 
                 <VisualState x:Name="MouseOver"> 
                  <Storyboard> 
                   <DoubleAnimation Duration="0" 
                       Storyboard.TargetName="Ellipse" 
                       Storyboard.TargetProperty="Width" 
                       To="{s:Static Member=visuals:ManipulationMargins.AnnotationResizingMaxSize}" /> 
                   <DoubleAnimation Duration="0" 
                       Storyboard.TargetName="Ellipse" 
                       Storyboard.TargetProperty="Height" 
                       To="{s:Static Member=visuals:ManipulationMargins.AnnotationResizingMaxSize}" /> 
                  </Storyboard> 
                 </VisualState> 
                 <VisualState x:Name="Pressed"> 
                  <Storyboard> 
                   <DoubleAnimation Duration="0" 
                       Storyboard.TargetName="Ellipse" 
                       Storyboard.TargetProperty="Width" 
                       To="{s:Static Member=visuals:ManipulationMargins.AnnotationResizingMaxSize}" /> 
                   <DoubleAnimation Duration="0" 
                       Storyboard.TargetName="Ellipse" 
                       Storyboard.TargetProperty="Height" 
                       To="{s:Static Member=visuals:ManipulationMargins.AnnotationResizingMaxSize}" /> 
                  </Storyboard> 
                 </VisualState> 
                </VisualStateGroup> 
               </VisualStateManager.VisualStateGroups> 
               <Ellipse x:Name="Ellipse" 
                 Width="{s:Static Member=visuals:ManipulationMargins.AnnotationResizingThumbSize}" 
                 Height="{s:Static Member=visuals:ManipulationMargins.AnnotationResizingThumbSize}" 
                 Fill="{TemplateBinding Background}" 
                 Stroke="{TemplateBinding BorderBrush}" 
                 StrokeThickness="{TemplateBinding BorderThickness}" 
                 Effect="{Binding Source={x:Static me:EffectManager.Instance}, Path=EnableDropShadows, Converter={StaticResource EffectConverter}, ConverterParameter={StaticResource EllipseShadowEffect}}">                  
               </Ellipse> 
              </Grid> 
             </ControlTemplate> 
            </Setter.Value> 
           </Setter> 
          </Style> 
         </Canvas.Resources> 
        </Canvas> 

       </Grid> 

       <axes:AxisArea Name="PART_CenterXAxisArea" 
           ItemsPanel="{TemplateBinding CenterXAxesPanelTemplate}" 
           ap:Device.SnapsToDevicePixels="True" /> 

      </themes:PolarPanel> 

      <!-- Chart area border only --> 
      <Border Grid.Row="3" 
        Grid.Column="2" 
        HorizontalAlignment="Stretch" 
        VerticalAlignment="Stretch" 
        BorderBrush="{Binding ElementName=PART_GridLinesArea, Path=BorderBrush}" 
        BorderThickness="{Binding ElementName=PART_GridLinesArea, Path=BorderThickness}" 
        ap:Device.SnapsToDevicePixels="True" /> 

      <!-- Axis areas --> 
      <axes:AxisArea x:Name="PART_TopAxisArea" 
          Grid.Row="2" 
          Grid.Column="2" 
          ItemsPanel="{TemplateBinding TopAxesPanelTemplate}" 
          Style="{StaticResource AxisAreaStyle}" 
          ap:Device.SnapsToDevicePixels="True" /> 
      <axes:AxisArea x:Name="PART_LeftAxisArea" 
          Grid.Row="3" 
          Grid.Column="1" 
          ItemsPanel="{TemplateBinding LeftAxesPanelTemplate}" 
          Style="{StaticResource AxisAreaStyle}" 
          ap:Device.SnapsToDevicePixels="True" /> 
      <axes:AxisArea x:Name="PART_BottomAxisArea" 
          Grid.Row="4" 
          Grid.Column="2" 
          ItemsPanel="{TemplateBinding BottomAxesPanelTemplate}" 
          Style="{StaticResource AxisAreaStyle}" 
          ap:Device.SnapsToDevicePixels="True" /> 
      <axes:AxisArea x:Name="PART_RightAxisArea" 
          Grid.Row="3" 
          Grid.Column="3" 
          ItemsPanel="{TemplateBinding RightAxesPanelTemplate}" 
          Style="{StaticResource AxisAreaStyle}" 
          ap:Device.SnapsToDevicePixels="True" /> 
     </visuals:MainGrid> 
    </Border> 
</ControlTemplate> 

を含まれています

+0

お返事ありがとうございます。 200pxの高さでグラフが大きくなり、ツールチップが大丈夫だと信じています:)私は解決策を提案しようとします。 –

+0

すべての修飾子がツールチップ用のViewModelsを出力するためです。 CursorModifier.SeriesDataプロパティは、SeriesInfoを公開します。ツールチップのモデルを表示します。常に上に表示されるWPFツールチップレイヤを使用して、独自のツールチップをバインドできる必要があります。 http://www.scichart.com/documentation/v4.x/webframe.html#SciChart.Charting~SciChart.Charting.ChartModifiers.InspectSeriesModifierBase~SeriesData.htmlおよびhttp://www.scichart.com/をご覧ください。ドキュメント/ v4.x/webframe.html#SeriesInfo%20-%20the%20ViewModels%20for%20Tooltips%20and%20Legends.html詳細情報 –

+0

ありがとうございます、私は試してみます –

関連する問題