今回のアプリのダウンロード先
連続した直線を描画するにはPolyLine
から
に変更
デザイン画面
コード
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
namespace _20180607_クリックで直線Polyline
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
MyCanvas.MouseMove += MyCanvas_MouseMove;
MyCanvas.MouseLeftButtonDown += MyCanvas_MouseLeftButtonDown;
MyCanvas.MouseRightButtonDown += MyCanvas_MouseRightButtonDown;
}
private void MyCanvas_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
MyPolyline.Points.Clear();
}
private void MyCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
PointCollection points = MyPolyline.Points;
if (points.Count == 0)
{
points.Add(e.GetPosition(MyCanvas));
}
points.Add(e.GetPosition(MyCanvas));
}
private void MyCanvas_MouseMove(object sender, MouseEventArgs e)
{
PointCollection points = MyPolyline.Points;
if (points.Count != 0)
{
points[points.Count - 1] = e.GetPosition(MyCanvas);
}
}
}
}
かなり短くなった
ってことは前回はかなり余計なことをしていたことになるwww
Polylineって名前からポリゴンを想像して、そこから三角形とかの図形専用で直線とは関係ないのかと思っていたんだよねえ
前回のPathのDataにPathGeometryを指定してLineSegmentを継ぎ足していく方法は、LineSegmentじゃなくて
ベジェ曲線を継ぎ足していくときには使えそう
コード全部
参照したところ
関連記事
4年後
2018/06/20は12日後
2018/06/09は翌日
2018/06/06はおととい