似乎在SurfaceMeshRenderableSeries3D中添加以下XAML无效:
<s3D:SurfaceMeshRenderableSeries3D.PointMarker>
<s3D:SpherePointMarker3D Size="0.3"/>
</s3D:SurfaceMeshRenderableSeries3D.PointMarker>
同时添加ControlTemplate不起作用:
<ControlTemplate x:Key="marker">
<s3D:SpherePointMarker3D Fill="Red" Size="0.5"/>
</ControlTemplate>
...PointMarkerTemplate="{StaticResource marker}...
使用相同数据添加ScatterRenderableSeries3D会在数据点上显示标记。但我们计划在3D图表中将多个3DMeshSeries与多个3DLineSeries相结合。每个网格的附加系列使所需系列的数量增加一倍。在修改数据点的情况下,它使系列的处理变得非常复杂。
是否可以添加数据点标记以在SurfaceMeshRenderableSeries3D上显示而无需向每个网格系列添加额外的ScatterRenderableSeries3D?
答案 0 :(得分:0)
根据SciChart 3D Surface documentation,没有任何内容可以暗示您可以在SurfaceMeshRenderableSeries上显示PointMarker。
但是,您可以使用ImpulseRenderableSeries3D达到所需的效果。
按如下方式声明图表:
<s3D:SciChart3DSurface x:Name="SciChart"
BorderThickness="0"
WorldDimensions="200,100,200">
<s3D:SciChart3DSurface.RenderableSeries>
<s3D:SurfaceMeshRenderableSeries3D x:Name="surfaceMeshRenderableSeries"
DrawMeshAs="SolidWireFrame"
Stroke="#77228B22"
ContourStroke="#77228B22"
StrokeThickness="2.0"
DrawSkirt="False"
Opacity="0.9">
<s3D:SurfaceMeshRenderableSeries.MeshColorPalette>
<s3D:GradientColorPalette>
<s3D:GradientColorPalette.GradientStops>
<GradientStop Offset="1" Color="DarkRed"/>
<GradientStop Offset="0.9" Color="Red"/>
<GradientStop Offset="0.7" Color="Yellow"/>
<GradientStop Offset="0.5" Color="GreenYellow"/>
<GradientStop Offset="0.3" Color="Cyan"/>
<GradientStop Offset="0.1" Color="Blue"/>
<GradientStop Offset="0.0" Color="#1D2C6B"/>
</s3D:GradientColorPalette.GradientStops>
</s3D:GradientColorPalette>
</s3D:SurfaceMeshRenderableSereis.MeshColorPalette>
</s3D:SurfaceMeshRenderableSeries3D>
<s3D:ImpulseRenderableSeries3D x:Name="ImpulseSeries3D"
StrokeThickness="0">
<s3D:ImpulseRenderableSeries3D.PointMarker>
<s3D:SpherePointMarker3D Fill="Blue" Size="4.0" Opacity="1"/>
</s3D:ImpulseRenderableSeries3D.PointMarker>
</s3D:ImpulseRenderableSeries3D>
</s3D:SciChart3DSurface.RenderableSeries>
<s3D:SciChart3DSurface.XAxis>
<s3D:NumericAxis3D />
</s3D:SciChart3DSurface.XAxis>
<s3D:SciChart3DSurface.YAxis>
<s3D:NumericAxis3D VisibleRange="0, 0.5"/>
</s3D:SciChart3DSurface.YAxis>
<s3D:SciChart3DSurface.ZAxis>
<s3D:NumericAxis3D />
</s3D:SciChart3DSurface.ZAxis>
</s3D:SciChart3DSurface>
通过在ImpulseRenderableSeries3D和SurfaceMeshRenderableSeries3D上设置相同的数据集,您将获得出现在网格坐标处的标记。
修改:更新
请注意,我已将 ImpulseRenderableSeries3D.StrokeThickness 设置为零以隐藏线条。
此外,在SciChart的v5.1.0.11439中发现了一个错误,其中将StrokeThickness设置为0并将Opacity设置为任何值导致NullReferenceException。这将在SciChart的每晚v5.1.0.11440版本中修复。
您可以从SciChart NuGet feed获取最新版本。