この問題にはわかりませんが、とにかく尋ねる簡単な解決策があると確信しています。私はこのコードを持っている:C#グラフの線分がアンカーポイントがオフのときに消えますAxisビュー
HorizontalLineAnnotation h = new HorizontalLineAnnotation();
h.AnchorX = startOfNewGraph;
h.Width = newGraphWidth;
h.AxisX = resultGraph.ChartAreas[0].AxisX;
h.AxisY = resultGraph.ChartAreas[0].AxisY;
h.IsSizeAlwaysRelative = false;
h.ClipToChartArea = resultGraph.ChartAreas[0].Name;
originalHLAAnchors.Add(h.AnchorX);
originalHLAWidths.Add(h.Width);
resultGraph.Annotations.Add(h);
私の問題は私のグラフビューは、そのAnchorXがビューの外にある場合にスケーリングされたときに注釈が消えるということです。注釈のどちらの部分もビューにない場合でも、私はまだそれらの間の線を見ることができますので、私はそれを維持したいと思います。これを改善するために私が試みたことは次のとおりです。
private void resultGraph_AxisViewChanged(object sender, ViewEventArgs e)
{
if (e.Axis == resultGraph.ChartAreas[0].AxisX)
{
ResizeHorizontalAnnotations();
}
}
private void ResizeHorizontalAnnotations()
{
int count = 0;
for (int i = 0; i < resultGraph.Annotations.Count; i++)
{
if (resultGraph.Annotations[i] is HorizontalLineAnnotation)
{
if (originalHLAAnchors[count] < resultGraph.ChartAreas[0].AxisX.ScaleView.ViewMinimum)
{
resultGraph.Annotations[i].AnchorX = resultGraph.ChartAreas[0].AxisX.ScaleView.ViewMinimum + 0.0005;
if ((originalHLAAnchors[count] + originalHLAWidths[count]) >= resultGraph.ChartAreas[0].AxisX.ScaleView.ViewMaximum)
{
resultGraph.Annotations[i].Width = resultGraph.ChartAreas[0].AxisX.ScaleView.ViewMaximum - resultGraph.ChartAreas[0].AxisX.ScaleView.ViewMinimum;
}
else
{
resultGraph.Annotations[i].Width -= resultGraph.ChartAreas[0].AxisX.ScaleView.ViewMinimum - originalHLAAnchors[count];
}
}
else
{
resultGraph.Annotations[i].AnchorX = originalHLAAnchors[count];
resultGraph.Annotations[i].Width = originalHLAWidths[count];
}
resultGraph.Annotations[i].Visible = true;
count++;
}
}
resultGraph.UpdateAnnotations();
}
しかし、このコードはどちらも機能していないようです。注釈は最初に試したときに表示されなかったので、AnchorXに0.005を追加して、表示の最小値を少し上回らなければならないかどうかを確認しました。これはどちらもうまくいかなかった。注釈のローカル値をチェックするとき、数字は正しいです。アノテーションは正しく表示されず、まったく表示されません。 UpdateAnnotations()はビューをズームアウトし、注釈も無効にします。
アイデア?
私は最終的に今それに戻って持って、あなたの最初の文が答えです。私が必要としたのはAnchorXではなくXに値を設定することだけでした.Xが見えなくてもうまくいきました。それが何か簡単だと分かった! – cl12