문제

MouseMove 이벤트 핸들러에서 이미지를 업데이트하여 마우스 커서의 위치를 ​​추적하는 WPF 앱을 만들고 싶습니다.내 원래 생각은 Geometry Drawing을 만든 다음 경로를 추가하는 것이었지만 이를 코드에서 연결하는 방법에 어려움을 겪고 있습니다(Geometry Drawings용 Xaml은 간단해 보이지만).이 항목을 연결하는 가장 쉬운 방법은 무엇입니까? 디버깅을 위한 것이므로 효율성에 대해서는 걱정하지 않습니다.

도움이 되었습니까?

해결책

Polyline을 사용하는 것은 어떻습니까?

Xaml은 다음과 같습니다.

<Window
    x:Class="CursorLine.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1"
>
    <Canvas x:Name="canvas" Background="#00FFFFFF" MouseMove="Canvas_MouseMove">
        <Polyline x:Name="polyline" Stroke="DarkGreen" StrokeThickness="3"/>
    </Canvas>
</Window>

뒤에 있는 코드는 다음과 같습니다.

private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
    polyline.Points.Add(e.GetPosition(canvas));
}

다른 팁

GeometryGroup을 사용합니다.여기에는 여러 하위 형상이 있을 수 있습니다.귀하의 경우 마우스 위치를 중심으로 각 마우스 이동 지점에 대해 EllipseGeometry를 추가합니다.그래서 다음과 같습니다.

private GeometryGroup _allMousePoints = new GeometryGroup();

void OnMouseMove(...)
{
  _allMousePoints.Children.Add(
    new EllipseGeometry {
      Center = mouseLocation,
      RadiusX = 3,
      Radius Y = 3
    });
}

이제 _allMousePoints를 Geometry Drawing의 형상 또는 경로 데이터로 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top