ScottPlotとは?
WindowsフォームやWPFなどに使えるグラフ描画ライブラリ。オープンソース。最近大型アプデ(4.1→5)があったらしい。
↑を見ればわかるが、マウスドラッグでグラフをぐりぐり動かせる。
このぐりぐりを無効化したい。
結論
コードビハインド(WPFだと.xaml.cs
)にこれを書く。
XY軸を両方固定
// WpfPlot1 がグラフコントロール
// マウスドラッグを禁止する
WpfPlot1.Loaded += (sender, e) =>
{
var axes = WpfPlot1.Plot.Axes;
var limits = axes.GetLimits();
ScottPlot.AxisRules.LockedHorizontal rule1 = new(axes.Bottom, limits.Left, limits.Right);
ScottPlot.AxisRules.LockedVertical rule2 = new(axes.Left, limits.Bottom, limits.Top);
axes.Rules.Add(rule1);
axes.Rules.Add(rule2);
WpfPlot1.Refresh();
}
ポイント
- コードビハインドのコンストラクタにそのまま書くと、グラフデータが表示されなくなる
- ドラッグを禁止するかどうかは軸ごとに設定されるので、軸を増やした場合はそれぞれにルールを設定する
- 今回は表示時には固定したかったので
Loaded
イベントを使ったが、ボタンクリックイベントとかでも問題無く動く - ネット上にあるほとんどの情報はScottPlot4.1のものなので、5には使えない