其他分享
首页 > 其他分享> > wpf-折线图绘制2-oxyplot-2

wpf-折线图绘制2-oxyplot-2

作者:互联网

上一篇在:wpf-折线图绘制2-oxyplot-1

设置图本身

IsLegendVisible = true; // 是否显示图例
PlotAreaBorderColor = OxyColors.Transparent; // 图边界的颜色

这些都是model层的设置,对应上一篇,就是_viewModel.SimplePlotModel的属性。

设置坐标轴

简单示例

LinearAxis xAxis = new LinearAxis() {
    Position = AxisPosition.Bottom, // 设置相对于图像的位置
    Minimum = 0,
    AbsoluteMinimum = 0, // 放缩的下界
    Maximum = 100,
    IsAxisVisible = true, 
    IsPanEnabled = false, // 是否能拖动
    IsZoomEnabled = false, // 是否能放缩
    TickStyle = TickStyle.None, // 刻度的样式。None表示不显示
    //MajorStep = 1,
    AxislineStyle = LineStyle.Solid, // 轴的样式
    AxislineColor = OxyColor.Parse("#9C9C9C"), // 轴的颜色
    AxislineThickness = 1, // 轴的粗细
};

坐标轴的设定请参考上一篇里链接的公共属性:
公共属性介绍

改变轴上标签的格式

比如我想只显示10, 20, 30, …这种,或者X1, X2, X3…这种。默认的话,轴显示的刻度是20, 40…(当然刻度会随放大缩小程度改变)。

因为我要显示的标签,仍然是与x值有关的,所以不能用CategoryAxis,因为会无法对齐图像。所以还是用LinearAxis,但修改LabelFormatter标签。这里使用delegate,x就是坐标轴的值,返回值是一个字符串,就是要显示在轴上的标签。可以根据x的值返回不同内字符串,以此实现对标签的内容控制。

LabelFormatter = delegate(double x) {
    return ""; // 只是举例,这样可以实现标签的隐藏
}, 

轴平移放缩和恢复触发的事件

AxisChangeTypes还有Pan和Reset。

yAxis.AxisChanged += (sender, e) => {
    if (e.ChangeType == AxisChangeTypes.Zoom) {
        ...
    }
};

控制

左键拖动

如果开启了平移和放大缩小,那么滚轮控制放大缩小,按住右键实现平移,左键负责点击事件。但有时希望按住左键实现拖动,那么这样修改。(然后点击事件不行了。。。)

var myController = new PlotController();
myController.UnbindMouseDown(OxyMouseButton.Right);
myController.BindMouseDown(OxyMouseButton.Left, PlotCommands.PanAt);
myPlot.Controller = myController;

其中前台有

<oxy:PlotView x:Name="myPlot"/>

标签:oxyplot,LinearAxis,标签,放缩,坐标轴,刻度,折线图,wpf,myController
来源: https://blog.csdn.net/pxy7896/article/details/120430239