C#WPFでマウスのダウン、移動、およびアップイベントを使用してポリラインを描画する際に、パフォーマンス上の問題が発生します。コードをご覧ください。私のコードは正常に動作しています。私が直面している問題は、しばらくしてから連続線を描きたいときに、線の動きが遅くなるということです。より速い方法で線を描くための優れたソリューションがあるか、既存のコードを改善するためのより良いソリューションがあるかどうかを知りたいと思います。
ありがとうございます。マウスダウン、移動、アップイベントを使用して描画中のポリラインの速度の問題
Polyline freeLine;
Point _startPoint;
public void canvas_MouseDown(object sender, MouseButtonEventArgs e)
{
_startPoint = e.GetPosition(canvas);
freeLine = new Polyline();
freeLine.StrokeDashCap = PenLineCap.Square;
freeLine.Stroke = color;
freeLine.StrokeThickness = thickness;
canvas.Children.Add(freeLine);
freeLine.StrokeLineJoin = PenLineJoin.Round;
}
public void canvas_MouseMove(object sender, MouseButtonEventArgs e)
{
Point currentPoint = e.GetPosition(canvas1);
if (_startPoint != currentPoint)
{
arrowfreeLine.Points.Add(currentPoint1);
}
}
public void canvas_MouseUp(object sender, MouseButtonEventArgs e)
{
freeLine = null;
}
ポインタのカップル: 'MouseMove'は**非常に**しばしば、不必要な詳細を削除するには同様のポイントのカップルをフィルタリング考える呼び出されます。ポイントを変更するたびに、ポリラインがジオメトリ全体を再計算します。代わりにポリラインをWriteableBitmapに描画します(または[WriteableBitmapEx](https://github.com/teichgraf/WriteableBitmapEx/))。簡単な図形を描く)。 –
あなたは私にそれのためのサンプルコードを教えてください。 –
2つのオプションのうちのどれですか?後で完全なポリラインが必要ですか?あなたはそれで何をやっていますか。あなたが実際にやろうとしていることを知るためには、さらに詳細が必要です。 –