|
連続した直線を描画するにはPolyLine
System.Windows.Shapes.Polyline
System.Windows.Shapes.Path
から
System.Windows.Shapes.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;
//最初のクリックのときだけ座標を2個追加する
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じゃなくてベジェ曲線を継ぎ足していくときには使えそう
コード全部
参照したところ
WPFサンプル:Line, Polyline, Polygonで直線、図形を描く:Gushwell's Dev Notes 関連記事
2018/06/20
WPFで矢印線、直線(PolyLine)と矢印(Polygon)を組み合わせて表現 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ 2018/06/09
マウスクリックでCanvasに直線を描画その3、ベジェ曲線で直線、PolyBezierSegment ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ 2018/06/06
マウスクリックでCanvasに直線を描画、Line、Path、WPFとC# ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ |

>
- コンピュータとインターネット
>
- コンピュータ
>
- ソフトウェア





