1
XAML라인 애니메이션
<Canvas Name="canvas" MouseDown="canvas_MouseDown" MouseUp="canvas_MouseUp" Background="White" MouseMove="canvas_MouseMove" />
내가 위로 이잖아 때 마우스에 할당 된 선을 마우스에 할당 된 첫 번째 점, 두 번째 점을 끌기 위해 노력하고 C#
Line AnimationLine;
Point P1;
private void canvas_MouseDown(object sender, MouseButtonEventArgs e)
{
P1 = e.GetPosition(canvas);
AnimationLine = new Line() { Stroke = new SolidColorBrush { Color = Colors.Blue },StrokeThickness = 3};
AnimationLine.X1 = P1.X;
AnimationLine.Y1 = P1.Y;
canvas.Children.Add(AnimationLine);
}
private void canvas_MouseUp(object sender, MouseButtonEventArgs e)
{
var P2 = e.GetPosition(canvas);
canvas.Children.Remove(AnimationLine);
//AnimationLine = new Line();
canvas.Children.Add
(new Line()
{
X1 = P1.X,
Y1 = P1.Y,
X2 = P2.X,
Y2 = P2.Y,
StrokeThickness = 3,
Stroke = new SolidColorBrush { Color = Colors.Blue }
});
}
private void canvas_MouseMove(object sender, MouseEventArgs e)
{
if(e.LeftButton == MouseButtonState.Pressed)
{
var P2 = e.GetPosition(canvas);
AnimationLine.X2 = P2.X;
AnimationLine.Y2 = P2.Y;
}
}
라인이 그려지지만 드래그 할 때 실시간 라인과 같은 애니메이션 라인 인 애니메이션 라인을 보여주고 싶습니다.
나는 마이크로 소프트 페인트처럼 선을 그려야한다.
방금 위 내용을 작성했는데 훌륭하게 작동하지만 실제로는 어떻게해야할까요? 도움이 될 수있는 내장 기능이 있습니까?
당신이 전혀 설명하지 않은 어떤 달성 하려는지에 따라 달라집니다. 방금해야 할 일을 추측 할 수 있도록 코드를 보여 줬습니다. 어쨌든, 제게는 실제로 필요한 것보다 훨씬 많은 Line 객체를 생성하는 것 같습니다. 왜'canvas_MouseUp'에'AnimationLine = new Line()'을 할당할까요? – Clemens
@Clemens 나는 마우스를 아래로 두는 첫 번째 점, 두 번째 점은 마우스 위로, 그리는 것은 선이 그려지는 선을 그리려하고있다. 그러나 드래그 할 때 애니메이션 선, 안내선과 같은 애니메이션 선을 표시하려고한다. , 그것을 얻으려면 내가 얻을 수 있도록 마이크로 소프트 페인트처럼 AnimationLine = new Line()을 제거하여 – user1492051
@ user1492051을 제거하고,'canvas_MouseUp'에서 코드를 주석 처리하여 차이가 있는지 확인하십시오 . 또한 마우스 이동 핸들러에서'e.LeftButton'을 체크하지만 마우스 다운 핸들러에서는 체크하지 않으므로 오른쪽 마우스 버튼이 다르게 작동합니다 (의도 한 경우 dunno). – icebat