如何在折线图中显示其他点信息?

avi

我有一个带有使用WPF MVVM的折线图的LineSeries图表,我需要在图表的每个点上显示与特定点相关的文本,该文本应始终在图表上可见(不像工具提示)。每个CurrPointOnGraph是HydroHeightMeasureViewModel,其中包含一个名为PointNote的属性,我希望在标签上显示该属性。

                       <UserControl x:Class="HydroHeightMeasurementView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts" 
         xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
         xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
         mc:Ignorable="d"             
         xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit" >

<DockPanel DataContext="{Binding HydroHeightMeasureMainViewModel}">


        <DVC:Chart Title="River Crossing View" Margin="10,10,10,5" Canvas.Top="80" Canvas.Left="10" Foreground="Black"  Background="LightSteelBlue" Height="447"  >
            <DVC:Chart.Series>

                <DVC:LineSeries Title="Height Point" IsSelectionEnabled="True" IndependentValueBinding="{Binding Path=X}" DependentValueBinding="{Binding Path=Y}" SelectedItem="{Binding CurrPointOnGraph, Mode=TwoWay}" ItemsSource="{Binding HydroPoints, BindsDirectlyToSource=True, Mode=OneWay}">
                    <DVC:LineSeries.DataPointStyle>
                        <Style TargetType="{x:Type DVC:LineDataPoint}">
                            <Setter Property="Background" Value="SaddleBrown" ></Setter>
                            <Setter Property="Opacity" Value="0" />
                        </Style>
                    </DVC:LineSeries.DataPointStyle>
                    <DVC:LineSeries.Template>
                        <ControlTemplate TargetType="DVC:LineSeries">
                            <Canvas x:Name="PlotArea">
                                <Polyline x:Name="polylinee"
                                  Points="{TemplateBinding Points}" 
                                  Stroke="SaddleBrown" 
                                  Style="{TemplateBinding PolylineStyle}" IsHitTestVisible="False">                                      
                                   </Polyline>
                            </Canvas>
                        </ControlTemplate>
                    </DVC:LineSeries.Template>
                </DVC:LineSeries>

            </DVC:Chart.Series>
            <DVC:Chart.Axes>
                <DVC:LinearAxis Title="Distance (Meters)" ShowGridLines="{Binding IsShowGrid}" Minimum="0" Orientation="X" >
                </DVC:LinearAxis>
                <DVC:LinearAxis Title="Height (Meters)" ShowGridLines="{Binding IsShowGrid}"  Minimum="0" Orientation="Y" >
                </DVC:LinearAxis>
            </DVC:Chart.Axes>
        </DVC:Chart>
</DockPanel>

在此处输入图片说明

jsanalytics

创建DataPointStyle并自定义其Template属性,如下所示:

XAML:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfApplication224"
    xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
    xmlns:visualizationToolkit="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
    xmlns:Primitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
    x:Class="WpfApplication224.MainWindow"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <Style x:Key="DataPointStyle1" TargetType="{x:Type chartingToolkit:LineDataPoint}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="chartingToolkit:LineDataPoint">
                    <Grid>
                        <Ellipse Fill="{TemplateBinding Background}"/>
                        <Canvas>
                            <TextBlock FontWeight="Bold" Text="{Binding Info}" Margin="15,0,0,0"/>
                        </Canvas>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>

<Window.DataContext>
    <local:MyViewModel/>
</Window.DataContext>

<Grid>
    <chartingToolkit:Chart Margin="0" Title="Chart Title">
        <chartingToolkit:LineSeries DependentValuePath="Y" 
                                    IndependentValuePath="X" 
                                    ItemsSource="{Binding Data}" 
                                    DataPointStyle="{StaticResource DataPointStyle1}">
            <chartingToolkit:LineSeries.DependentRangeAxis>
                <chartingToolkit:LinearAxis Orientation="Y" Minimum="0" Maximum="60" Location="Left"/>
            </chartingToolkit:LineSeries.DependentRangeAxis>
            <chartingToolkit:LineSeries.IndependentAxis>
                <chartingToolkit:LinearAxis Orientation="X" Minimum="0" Maximum="6" Location="Bottom"/>
            </chartingToolkit:LineSeries.IndependentAxis>
        </chartingToolkit:LineSeries>
    </chartingToolkit:Chart>
</Grid>

ViewModel:

public class MyViewModel
{
    public ObservableCollection<MyDataModelClass> Data { get; set; }

    public MyViewModel()
    {
        Data = new ObservableCollection<MyDataModelClass>
        {
            new MyDataModelClass {X = 1, Y = 10, Info = "Info 1" },
            new MyDataModelClass {X = 2, Y = 40, Info = "Info 2" },
            new MyDataModelClass {X = 3, Y = 20, Info = "Info 3" },
            new MyDataModelClass {X = 4, Y = 50, Info = "Info 4" },
            new MyDataModelClass {X = 5, Y = 30, Info = "Info 5" },
        };
    }
}

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在折线图中显示其他点信息?

来自分类Dev

D3:如何在折线图中显示孤点

来自分类Dev

如何在Google聊天的折线图中插入点处显示气泡或正方形

来自分类Dev

D3:如何在折线图中显示孤点

来自分类Dev

如何在Oxyplot中显示折线图的绘图点?

来自分类Dev

如何在折线图上隐藏和显示点

来自分类Dev

如何在Excel中的折线图上显示其他单点?

来自分类Dev

如何使用C#在折线图中显示标记点

来自分类Dev

如何在achartengine折线图中显示刷新Web服务值?

来自分类Dev

如何在Highcharts的折线图中显示类似地图的图例?

来自分类Dev

如何在折线图中仅显示24小时栏?

来自分类Dev

如何在achartengine折线图中显示刷新Web服务值?

来自分类Dev

如何在折线图中显示系列中的第一个数据?

来自分类Dev

如何显示Google图表(折线图)信息(标签)?

来自分类Dev

如何在Google API区域图的折线图笔划中显示点值?

来自分类Dev

如何在javafx中的折线图点上悬停时显示值?

来自分类Dev

如何在JavaFX折线图中删除图例

来自分类Dev

如何在JFree折线图中添加注释

来自分类Dev

如何在谷歌折线图中制作虚线

来自分类Dev

如何在柱形图上将其他系列作为折线图

来自分类Dev

在画布折线图中显示负值

来自分类Dev

如何在水晶报表、折线图中的 Y 轴值中显示百分比 (%) 符号?

来自分类Dev

我如何在R中的折线图中做一个折线或空白

来自分类Dev

如何在Excel中的多个折线图中仅查看一条折线

来自分类Dev

如何在折线图中的两个折线之间添加填充?

来自分类Dev

Altair:如何更改折线图中的折线颜色?

来自分类Dev

用R + ggplot在折线图中绘制点

来自分类Dev

在折线图中的多条线上绘制点

来自分类Dev

使用文本作为折线图中的点标记

Related 相关文章

  1. 1

    如何在折线图中显示其他点信息?

  2. 2

    D3:如何在折线图中显示孤点

  3. 3

    如何在Google聊天的折线图中插入点处显示气泡或正方形

  4. 4

    D3:如何在折线图中显示孤点

  5. 5

    如何在Oxyplot中显示折线图的绘图点?

  6. 6

    如何在折线图上隐藏和显示点

  7. 7

    如何在Excel中的折线图上显示其他单点?

  8. 8

    如何使用C#在折线图中显示标记点

  9. 9

    如何在achartengine折线图中显示刷新Web服务值?

  10. 10

    如何在Highcharts的折线图中显示类似地图的图例?

  11. 11

    如何在折线图中仅显示24小时栏?

  12. 12

    如何在achartengine折线图中显示刷新Web服务值?

  13. 13

    如何在折线图中显示系列中的第一个数据?

  14. 14

    如何显示Google图表(折线图)信息(标签)?

  15. 15

    如何在Google API区域图的折线图笔划中显示点值?

  16. 16

    如何在javafx中的折线图点上悬停时显示值?

  17. 17

    如何在JavaFX折线图中删除图例

  18. 18

    如何在JFree折线图中添加注释

  19. 19

    如何在谷歌折线图中制作虚线

  20. 20

    如何在柱形图上将其他系列作为折线图

  21. 21

    在画布折线图中显示负值

  22. 22

    如何在水晶报表、折线图中的 Y 轴值中显示百分比 (%) 符号?

  23. 23

    我如何在R中的折线图中做一个折线或空白

  24. 24

    如何在Excel中的多个折线图中仅查看一条折线

  25. 25

    如何在折线图中的两个折线之间添加填充?

  26. 26

    Altair:如何更改折线图中的折线颜色?

  27. 27

    用R + ggplot在折线图中绘制点

  28. 28

    在折线图中的多条线上绘制点

  29. 29

    使用文本作为折线图中的点标记

热门标签

归档