Maneira mais fácil de desenhar uma sequência de pontos no WPF do código
Pergunta
Eu gostaria de criar um aplicativo WPF que rastreia a localização do cursor do mouse, atualizando a imagem no manipulador de eventos do Mousemove. Meu pensamento original era criar uma geometria e, em seguida, adicionar caminhos a isso, mas estou lutando com como conectar isso no código (embora o XAML para geometrydrawings pareça direto). Qual é a maneira mais fácil de conectar essas coisas - é apenas para depuração, por isso não estou preocupado com a eficiência.
Solução
Que tal apenas usar a Polyline?
Aqui está o 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>
Aqui está o código atrás:
private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
polyline.Points.Add(e.GetPosition(canvas));
}
Outras dicas
Use um grupo geometrico. Isso pode ter várias geometrias infantis: no seu caso, você adicionaria uma elipsegeometria para cada ponto de movimentação do mouse, centrado no local do mouse. Então, algo como:
private GeometryGroup _allMousePoints = new GeometryGroup();
void OnMouseMove(...)
{
_allMousePoints.Children.Add(
new EllipseGeometry {
Center = mouseLocation,
RadiusX = 3,
Radius Y = 3
});
}
Agora você pode usar _AllMousePoints como geometria de uma geometrica ou os dados de um caminho.