LoginSignup
1
0

ScottPlot5でマウスドラッグを無効化する方法

Posted at

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には使えない
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0