-1

ZedGraph を使用してデータをプロットしています。折れ線グラフのマークされた領域を表示する必要があります。そのために、赤い感嘆符を使用します。

下の図のように、感嘆符をグラフの上枠の上に表示したいと思います。感嘆符は、グラフの水平方向のスクロールに合わせてスクロールする必要がありますが、垂直方向にスクロールする場合でも、グラフの上部境界線の上に固定されたままにする必要があります。

これまでのところ、私はこれを試しました(form_shownイベントに表示されます):

ZedGraph.ImageObj io = new ZedGraph.ImageObj(global::ZedGraphJunk.Properties.Resources.alarm, 0d, -0.08d, 5d, 21d);
io.IsVisible = true;
io.IsScaled = false;
io.Location.CoordinateFrame = ZedGraph.CoordType.XScaleYChartFraction;

this.MasterZedGraph.GraphPane.GraphObjList.Add(io);
this.MasterZedGraph.Refresh();

これはほとんど機能しますが、ウィンドウのサイズが変更されて背が高くなると、感嘆符が消えます。これは、-0.08dが ZedGraph にチャートの上部境界線の上に描画するように指示するためですが、その位置はペイン全体 (チャートを含む領域全体) のサイズに対して相対的です。したがって、ペインが大きくなると、ImageObj の y 位置がチャートの上部境界線から離れた位置に設定されます。

感嘆符の位置を修正して、ペインのサイズに関係なく、グラフの上部境界線のすぐ上に留まる方法はありますか?

ここに画像の説明を入力

4

1 に答える 1

0

ImageObj クラスを拡張して Draw メソッドをオーバーライドすると、問題が解決するようです。

数日以内にこれを回答としてマークしますが、他の解決策も受け入れます。

于 2012-08-14T21:52:18.523 に答える